求高手点拨一个“打开网址”的Java功能源代码的“一个功能调用打开两个页面”的原因...
高手,您好:
我在写一个Java程序,其中用到了“打开URL地址”的功能,我调用了下面的“打开网址”的类型:
package c_port_packageBJUser;
/////////////////////////////////////////////////////////
//Bare Bones Browser Launch //
//Version 1.5 (December 10, 2005) //
//By Dem Pilafian //
//支持: Mac OS X, GNU/Linux, Unix, Windows XP//
//可免费使用 //
/////////////////////////////////////////////////////////
/**
* @author Dem Pilafian
* @author John Kristian
*/
import java.lang.reflect.Method;
public class BareBonesBrowserLaunch {
public static void openURL(String url) {
try {
browse(url);
} catch (Exception e) {
}
}
private static void browse(String url) throws Exception {
//获取操作系统的名字
String osName = System.getProperty("os.name", "");
if (osName.startsWith("Mac OS")) {
//苹果的打开方式
Class fileMgr = Class.forName("com.apple.eio.FileManager");
Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[] { String.class });
openURL.invoke(null, new Object[] { url });
} else if (osName.startsWith("Windows")) {
//windows的打开方式。
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
} else {
// Unix or Linux的打开方式
String[] browsers = { "firefox", "opera", "konqueror", "epiphany", "mozilla", "netscape" };
String browser = null;
for (int count = 0; count < browsers.length && browser == null; count++)
//执行代码,在brower有值后跳出,
//这里是如果进程创建成功了,==0是表示正常结束。
if (Runtime.getRuntime().exec(new String[] { "which", browsers[count] }).waitFor() == 0)
browser = browsers[count];
if (browser == null)
throw new Exception("Could not find web browser");
else
//这个值在上面已经成功的得到了一个进程。
Runtime.getRuntime().exec(new String[] { browser, url });
}
}
}
package c_port_packageBJUser;
import java.awt.Dialog;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
//创建ChatClient类作为聊天窗口;
public class Complete_ChatForeUIUserClient extends JFrame implements WindowListener,KeyListener,ItemListener, ActionListener
{
int lennum = 0;
private static final long serialVersionUID = 1L;
static Integer ChatPartnerSerialMark = 200;
Integer ChatFriNum = 200;
JScrollPane jspanel0 = null;
JScrollPane jspanel1 = null;
static DataOutputStream dops3 = null;
JPanel jp = new JPanel();
static DataInputStream dips3 = null;
boolean started = false;
InetAddress addr = null;
String title = "获取好友资料";
String chatword = null;
Dialog ordernum = new Dialog(this,title,started);
String str;
int T =0;
public static String UIDLocal = null;
static String roleLocal = null;
static String iPAddressLocal = null;
String Local_User_facia = null;
Integer MyLocalSysNum = -1;
static String MyChatObjrolE = null;
JPanel jp1 = new JPanel();
JTextArea Jta2 = new JTextArea();
String UserFuct = null;
JTextArea Jta1 = new JTextArea();
String[] s = {"查看好友信誉","输入用户编号获取用户资料","截图","发送文件","接收文件","投诉好友","音频通信","视频通信","查看好友详细","打开好友列表","打开聊天记录","获取客户所在地IP","转存本用户聊天记录"};
JComboBox<String> combo1 = null;
MyJButtonPayformyfuct jb1 = null;
OutputStream outputstream = null;
//CaptureScreen capScreen = new CaptureScreen();
public Complete_ChatForeUIUserClient(String UID,Integer MySysPriNum,String User_facia,Integer ChatObjectNum,String ChatObjrolE,String MyIP){
System.out.println("C端Complete_ChatForeUIUserClient");
this.setBounds(new Rectangle(419,92,590,550));
UIDLocal = UID;
MyLocalSysNum = MySysPriNum;
roleLocal = "User";
str = User_facia;
this.setTitle(str);
ChatPartnerSerialMark = ChatObjectNum;
MyChatObjrolE = ChatObjrolE;
iPAddressLocal = MyIP;
combo1 = new JComboBox<String>(s);
jb1 = new MyJButtonPayformyfuct("购买服务",String.valueOf(ChatObjectNum),ChatObjrolE,this);
//TODO:
Jta2.addKeyListener(this);
combo1.addItemListener(this);
Jta1.setLineWrap(true); //如果加上这一句,那么水平方向的滚动条永远不会出现。
Jta1.setEditable(false);
combo1.setBounds(new Rectangle(28,240,200,20));
jspanel0=new JScrollPane(Jta1);
jspanel1 = new JScrollPane(Jta2);
jspanel0.setBounds (new Rectangle (10,10,500,220));
jspanel1.setBounds (new Rectangle (10,280,500,220));
jspanel0.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
jspanel0.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
jspanel1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
jspanel1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
jp1.setLayout(null);
Jta1.setLineWrap(true);//激活自动换行功能
Jta2.setLineWrap(true);
Jta2.setWrapStyleWord(true);//激活断行不断字功能
Jta1.setWrapStyleWord(true);//激活断行不断字功能
jb1.setBounds(new Rectangle(353,240,100,20));
jb1.addActionListener(this);
jp1.setBounds(new Rectangle(10,10,590,550));
jp1.add(jb1);
jp1.add(combo1);
jp1.add(jspanel0);
jp1.add(jspanel1);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
public void start() {
this.add(jspanel0);
this.add(jspanel1);
this.add(jp1);
jp1.setVisible(true);
this.setVisible(true);
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
SocketClient so2 = new SocketClient(Recv.D_PORT_SERVER,9999);
synchronized(so2){
so2.writeStr("18丗18丗"+"User"+"丗"+RelayNo1.LocalMyWorkNum+"丗"+"User"+"丠"+RelayNo1.LocalMyWorkNum+"丠"+ChatPartnerSerialMark+"丠"+"User"+"丠"+"BeiJing"+"丗"+"C"+"丗"+"BeiJing","Complete_ChatForeUIUserClient");
so2.getMyResourceBack();
}
}
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
SocketClient so3 = new SocketClient(Recv.S_PORT_SERVER,8811);
String content = "8丗IcloseOneFrame丗C丗User丗"+NoteUserLoginFrame.MyworkNum;
so3.writeStr(content, "Complete_ChatForeUIUserClient");
so3.getMyResourceBack();
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
public static void main(String[] args){
new Complete_ChatForeUIUserClient("测试账户0",0,"CJCO!!加油!!",2,"User","222.196.1.8").start();
}
@Override
public void windowOpened(WindowEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER){
String Chatword = Jta2.getText().trim();
Jta1.append(Chatword+"\r\n");
Jta1.setCaretPosition(Jta1.getText().length());
Jta2.setCaretPosition(Jta2.getText().length());
Jta2.setText("");
Integer MySysserNum = Integer.parseInt("1");
String str = "1丗"+MySysserNum+"丠"+"User"+"丠"+ChatPartnerSerialMark+"丠"+MyChatObjrolE+"丠"+iPAddressLocal+"丠"+GetTheSysData.getTheLocalData()+"`"+Chatword+"丗"+"C"+"丗"+"User"+MySysserNum;
SocketClient so3 = new SocketClient(Recv.S_PORT_SERVER,8811);
synchronized(so3){
so3.writeStr(str,"Complete_ChatForeUIUserClient");
}
so3.getMyResourceBack();
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
UserFuct = (String)combo1.getSelectedItem();
if(UserFuct.equals("输入用户编号获取用户资料")){
new Code_Customer_OrderNum();
}else if(UserFuct.equals("查看好友信誉")){
String url = "www.baidu.com";
BareBonesBrowserLaunch.openURL(url);
}
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}