| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2803 人关注过本帖
标题:用J2SE编写Swing窗口程序---冰峰来报到,哈哈哈
只看楼主 加入收藏
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
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
简单说下吧: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]

My BlogClick Me
2007-03-26 09:20
adanis
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-11-26
收藏
得分:0 
冰封,先谢啦!
这贴不错,该顶上去学习下
2007-03-26 10:57
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
Eastsun研究JDK1.6挺透的嘛,赞一个

可惜不是你,陪我到最后
2007-03-26 12:26
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
其中的setText方法就是改变label上文字的现示,其中的html标签是为了让显示更美观一些.

这些是1.6新增的吗?

我的网站 http://www.
2007-03-26 18:56
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
SWING出来时候,就支持用HTML标签了,所以说是从JDK1.2开始就支持了

可惜不是你,陪我到最后
2007-03-26 19:16
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
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 

呵呵,我给的链接[url=http://java.sun.com/docs/books/tutorial/uiswing/components/html.html]http://java.sun.com/docs/books/tutorial/uiswing/components/html.html[/url]有对如何使用html的详细说明.
我就不重复了,再说我也不可能讲的比上面还清楚


My BlogClick Me
2007-03-27 23:03
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
Desktop就是JAVA里面的一个API

My BlogClick Me
2007-03-27 23:04
快速回复:用J2SE编写Swing窗口程序---冰峰来报到,哈哈哈
数据加载中...
 
   



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

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