| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2803 人关注过本帖
标题:用J2SE编写Swing窗口程序---冰峰来报到,哈哈哈
取消只看楼主 加入收藏
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
 问题点数:0 回复次数:9 
用J2SE编写Swing窗口程序---冰峰来报到,哈哈哈
用J2SE编写Swing窗口程序,比如说这个窗口程序里做一人超连接,当点击时可以直接弹出一个网页,这种超连怎么做哟?
比如说在HTML里面用<a href=www.qq.com target="blank">点击进去QQ官网</a>
比如我希望这个功能在Swing窗口程序里也同样实现这功能,在JAVA程序代码里该如何搞哟?
搜索更多相关主题的帖子: Swing窗口 冰峰 JAVA 编写 
2007-03-24 23:44
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 
Eastsun,你的代码前一部份我看起比较轻松,后一部份看起就困难了:
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);
}
}
你这段代码是希望实现什么功能?是不是前部份要new LinkLabel(),所以你在下面写了一个LinkLabel类,希望版主将你这段代码加点注释,分别起到什么功能,好吗?谢谢,最后还有个问题就是在最后的setText()方法里为什么还有HTML的标签出现?

2007-03-26 00:06
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 
以下是引用Eastsun在2007-3-26 9:20:23的发言:
简单说下吧:LinkLabel实现的功能就是将它上面显示的文字实现为超联接,当鼠标放在文字上面的时候,文字变为蓝色,并出现下划线;单击左键就会打开连接.
实现的方式就是给Label注册一个鼠标监听器,当鼠标出现上述动作时就表现出相应的行为.
其中的setText方法就是改变label上文字的现示,其中的html标签是为了让显示更美观一些.

代码本身应该没什么难度,关键是你要知道几个知识:
1.Swing组件中可以嵌入html代码来格式化现示
2.Desktop类的相关知识.
这些东西可以在API文档上找到,更具体的可以看sun官方网站的[url=http://java.sun.com/docs/books/tutorial/uiswing/components/html.html]tutorial[/url]
Eastsun,猛男,根据你的附带说明书再加上你写的代码看能懂一大半了,不过还有个小问题:你说SWING组件中可以嵌入HTML代码,问题是SWING本来展示出来的就是一个窗口式的应用程序啦,而且你加的代码是:

if(!b) setText("<html><font color=black>"+text);
else setText("<html><font color=blue><u>"+text);

这对HTML标签也没结尾啊?也不完全啊,我理解你的这个HTML标签目的是为了使字体变色是吧,SWING里也能使字体变色啊,我是能看懂你写的HTML标签,但是却无法理解它是如何实现的功能,HTML标签应该是成对出现才对啊


2007-03-27 22:48
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 

还有就是你指的Desktop是什么东西哟,我没学过,更谈不上了解,我目前学过的编程语言就只有C,JAVA,ASP


2007-03-27 22:49
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 
谢谢

2007-03-27 23:53
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 
是全英文的啊

2007-03-27 23:53
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 
Eastsun,你别简单说啊,你尽量说详细点好吗,我觉得你上面写得很精典,想学习,但有些地方的确太深奥,看不懂啊,特别是: try{
this.isSupported = Desktop.isDesktopSupported()&&Desktop.getDesktop().isSupported(Desktop.Action.BROWSE);
}catch(Exception e){
this.isSupported = false;
。。。。
。。。

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));
的确没能理解到各句的含意,劳烦你在旁边加些注释好吗?谢谢


2007-04-24 20:04
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 
而且我复制到我的eclipse上去后Desktop报错,无法解析

2007-04-24 20:41
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 

我的API 是1.5的,找不到"Desktop",所以到现在我也没研究透这个超连接是如何跨平台的,哭死啊


2007-10-31 18:19
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 

好的,谢了
我切弄1.6去了
我电脑配置的那个JAVA都自动升级成1.6老
就是JDK是1.5


2007-11-09 17:52
快速回复:用J2SE编写Swing窗口程序---冰峰来报到,哈哈哈
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018571 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved