当前位置: 代码迷 >> Java相关 >> 用J2SE编写Swing窗口程序---冰峰来报到,哈哈哈
  详细解决方案

用J2SE编写Swing窗口程序---冰峰来报到,哈哈哈

热度:519   发布时间:2007-03-24 23:44:54.0
用J2SE编写Swing窗口程序---冰峰来报到,哈哈哈
用J2SE编写Swing窗口程序,比如说这个窗口程序里做一人超连接,当点击时可以直接弹出一个网页,这种超连怎么做哟?
比如说在HTML里面用<a href=www.qq.com target="blank">点击进去QQ官网</a>
比如我希望这个功能在Swing窗口程序里也同样实现这功能,在JAVA程序代码里该如何搞哟?
搜索更多相关的解决方案: Swing窗口  冰峰  JAVA  编写  

----------------解决方案--------------------------------------------------------

/**
* @(#)MyTest.java
*
*
* @author if
* @version 1.00 2007/3/24
*/

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class MyTest extends JFrame{
public MyTest() {
setTitle("link");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton jbutton=new JButton();
jbutton.setText("goto bc-cn");
jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
Runtime.getRuntime().exec("explorer.exe http://www.bc-cn.net");
}catch(Exception ex){}
}
});
getContentPane().add(jbutton);
pack();
}
public static void main(String[] args) {
MyTest frame=new MyTest();
frame.setVisible(true);
}
}


----------------解决方案--------------------------------------------------------
楼上写的不错.
不过楼上的代码有个缺陷:就是楼上的程序不能跨平台!而只能够在Windows下有效
下面我来个可以跨平台的实现:
程序代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*Swing中实现超连接,注意:需要JDK1.6
*@author Eastsun
*/
public class SupperLink{
public static void main(String[] args){
JFrame frame =new JFrame(\"SupperLink\");
JLabel label =new LinkLabel(\"欢迎访问 Eastsun's blog^_^\",\"http://eastsun.javaeye.com\");
frame.add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
/**
*LinkLabel,一个实现超连接的Label.
*使用方法: label =new LinkLabel(\"在label上现示的文本\",\"点击文本时打开的url地址\");
*/
class LinkLabel extends JLabel{
private String text,url;
private boolean isSupported;
public LinkLabel(String text,String url){
this.text =text;
this.url =url;
try{
this.isSupported = Desktop.isDesktopSupported()&&Desktop.getDesktop().isSupported(Desktop.Action.BROWSE);
}catch(Exception e){
this.isSupported = false;
}
setText(false);
addMouseListener(new MouseAdapter(){
public void mouseEntered(MouseEvent e){
setText(isSupported);
if(isSupported) setCursor(new Cursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent e){
setText(false);
}
public void mouseClicked(MouseEvent e){
try{
Desktop.getDesktop().browse(new java.net.URI(LinkLabel.this.url));
}catch(Exception ex){
}
}
});
}
private void setText(boolean b){
if(!b) setText(\"<html><font color=black>\"+text);
else setText(\"<html><font color=blue><u>\"+text);
}

}

----------------解决方案--------------------------------------------------------
哈哈,楼上实在强,自愧不如~~
----------------解决方案--------------------------------------------------------
学习了,高人
----------------解决方案--------------------------------------------------------
谢谢Eastsun的指教,学习了.
你对jdk6的研究很深哦.
----------------解决方案--------------------------------------------------------
强人,学习了!正想问如何让JAVA程序执行WINDOWS里面的应用程序呢,对了,还想问下,如何用JAVA程序关闭WINDOWS系统或者重新启动!

----------------解决方案--------------------------------------------------------

可以调用Runtime.getRuntime().exec("shutdown -s")来关机,重启就不知道了


----------------解决方案--------------------------------------------------------
PS:Eastsun确实牛

----------------解决方案--------------------------------------------------------
被千里兄称赞,让我很心虚滴说
----------------解决方案--------------------------------------------------------