100分跪求“回复”,小弟目前开发IM系统,要求实现类似QQ显示消息框中的超链接。 小弟目前使用java开发IM系统,要求实现类似QQ显示消息框中的超链接,比如“接受”、“取消”,或者MSN当中的“查看与此人全部对话记录”超链接,希望各位高人指教。 备注:不使用JEditorPane显示网页的方式,目前我使用的是JTextPane,里面显示的是文本信息。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 做成下划线,然后可以聚焦,响应onclick就行了 yhharis : 为字体加上下划线,可以,请问如何在指定的文字信息上加上相应的事件驱动???此问题很急,而且不是三言两句就可解决的,希望做过此方面的经验者能帮帮忙了!!!再次声明: JTextPane中,通过document插入的文本信息。请问在此控件中如何加入超链接,还有在此控件上加上label,button是不合理的,位置有问题,请求回复!!!多少分没关系,问题能解决,所有的分数都给你也无所谓!待回复 http://www.java2s.com/Code/Java/Swing-JFC/ShowHTMLViews.htm这里很多例子,楼主自己看看 自己用HTML语言实现,然后监听 import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextPane;public class PaneInsertionMethods { public static void main(String[] args) { final JTextPane pane = new JTextPane(); // button to insert some text JButton textButton = new JButton("Insert Text"); textButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { pane.replaceSelection("text"); } }); // button to insert an icon final ImageIcon icon = new ImageIcon("bluepaw.gif"); JButton iconButton = new JButton(icon); iconButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { pane.insertIcon(icon); } }); // button to insert a button JButton buttonButton = new JButton("Insert Button"); buttonButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { pane.insertComponent(new JButton("Click Me")); } }); // layout JPanel buttons = new JPanel(); buttons.add(textButton); buttons.add(iconButton); buttons.add(buttonButton); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(pane, BorderLayout.CENTER); frame.getContentPane().add(buttons, BorderLayout.SOUTH); frame.setSize(360, 180); frame.setVisible(true); }} 这里实现了在JTextPane 上加button,楼主只要在这个基础之上从新绘制button就可以了 用JDK6中新特性快速把JLabel做成超链接 发布时间:2007.05.21 05:26 来源:赛迪网技术社区 作者:dxaw 用过NetBeans的朋友可能会发现,在NB的窗体界面中,有一些JLabel以图标形式出现,当鼠标点击这些label标签时,会自动打开我们的浏览器,并导航到相应的网站。 这个功能看起来似乎比较简单,可能有的朋友会想到用Runtime来调用本地浏览器。但这个方法太呆板了,有很大的局限性。首先,如果通过本地路径来调用,势必在可移植性上打了折扣。因为不同系统之间,不可能有相同的系统路径。其次,如果用户有多个浏览器,如既安装了ie还安装了firefox,而用户平时更喜欢在firefox中浏览网页,我们就不能强迫他用ie来打开我们要显示的信息。 而我们现在不需要为这些功能费脑细胞了,因为在JDK6中新增加的Desktop类为我们解决了这个问题。它不仅允许我们可以检测并打开默认浏览器,还允许我们检测并打开默认的邮件客户端,以及打开编辑和打印文件的功能。 这里我只给大家演示打开默认浏览器的功能,实现这样一个功能很简单,我们可以把它封装到一个类中,如果我们想把一个带图标的JLabel做成一个超链接效果,就可以给JLabel组件增加鼠标事件,来调用我们下边的代码,打开系统的默认浏览器。 代码如下: package org.anthrax;import java.awt.Cursor;import java.awt.Desktop;import java.io.IOException;import java.net.MalformedURLException;import java.net.URI;import java.net.URISyntaxException;import javax.swing.JLabel;/**** @author Anthrax*此类负责检测系统的默认浏览器等程序,并负责启动它们* @netSite 指定要显示的网址*/public class DesktopRuner { private Desktop desktop; private URI uri; private String netSite; private Cursor hander; /** Creates a new instance of DesktopRuner */ public DesktopRuner() { this.desktop = Desktop.getDesktop(); } /* *检测系统是否支持浏览器 */ public boolean checkBroswer(){ if(desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)){ return true; } else{ return false; } } /* *运行默认浏览器,并在其中显示指定网址 */ public void runBroswer(){ netSite = "http://mybass.china-pub.com"; try { uri = new URI(netSite); } catch (URISyntaxException ex) { ex.printStackTrace(); } try { desktop.browse(uri); } catch (IOException ex) { ex.printStackTrace(); } } /* *改变鼠标形状 */ public void changeMouse(JLabel label){ hander = new Cursor(Cursor.HAND_CURSOR); label.setCursor(hander); }} 以前在网上看到的,链接忘了我没有试过,不知行不行,希望对你有些帮助 求JAVA清屏代码 新人求教:单机项目转C/S的疑惑 Spring 下为何不能直接访问html文件????????? 如何对使用单例模式的类进行同步? java如何获取网卡数据? 任何在JTextField中输入的字符判断是否和数据库中的值相等 C++和JAVA的变量作用域的问题(有趣) 我这个内存分配 怎么老是失败啊!(出学者!) 有没有人会iplanet application server的?怎么没有人理我? 急急急!求大神帮忙啊 log4j怎么应用 高手帮忙看看我的代码有什么问题 多线程,SOCKET编程问题 (郁闷了一天,还是没解决!求教)
这里很多例子,楼主自己看看
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;public class PaneInsertionMethods { public static void main(String[] args) { final JTextPane pane = new JTextPane(); // button to insert some text
JButton textButton = new JButton("Insert Text");
textButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
pane.replaceSelection("text");
}
}); // button to insert an icon
final ImageIcon icon = new ImageIcon("bluepaw.gif");
JButton iconButton = new JButton(icon);
iconButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
pane.insertIcon(icon);
}
}); // button to insert a button
JButton buttonButton = new JButton("Insert Button");
buttonButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
pane.insertComponent(new JButton("Click Me"));
}
}); // layout
JPanel buttons = new JPanel();
buttons.add(textButton);
buttons.add(iconButton);
buttons.add(buttonButton); JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(pane, BorderLayout.CENTER);
frame.getContentPane().add(buttons, BorderLayout.SOUTH);
frame.setSize(360, 180);
frame.setVisible(true);
}
}
这里实现了在JTextPane 上加button,楼主只要在这个基础之上从新绘制button就可以了
发布时间:2007.05.21 05:26 来源:赛迪网技术社区 作者:dxaw 用过NetBeans的朋友可能会发现,在NB的窗体界面中,有一些JLabel以图标形式出现,当鼠标点击这些label标签时,会自动打开我们的浏览器,并导航到相应的网站。 这个功能看起来似乎比较简单,可能有的朋友会想到用Runtime来调用本地浏览器。但这个方法太呆板了,有很大的局限性。首先,如果通过本地路径来调用,势必在可移植性上打了折扣。因为不同系统之间,不可能有相同的系统路径。其次,如果用户有多个浏览器,如既安装了ie还安装了firefox,而用户平时更喜欢在firefox中浏览网页,我们就不能强迫他用ie来打开我们要显示的信息。 而我们现在不需要为这些功能费脑细胞了,因为在JDK6中新增加的Desktop类为我们解决了这个问题。它不仅允许我们可以检测并打开默认浏览器,还允许我们检测并打开默认的邮件客户端,以及打开编辑和打印文件的功能。 这里我只给大家演示打开默认浏览器的功能,实现这样一个功能很简单,我们可以把它封装到一个类中,如果我们想把一个带图标的JLabel做成一个超链接效果,就可以给JLabel组件增加鼠标事件,来调用我们下边的代码,打开系统的默认浏览器。 代码如下:
package org.anthrax;import java.awt.Cursor;
import java.awt.Desktop;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import javax.swing.JLabel;/**
*
* @author Anthrax
*此类负责检测系统的默认浏览器等程序,并负责启动它们
* @netSite 指定要显示的网址
*/
public class DesktopRuner {
private Desktop desktop;
private URI uri;
private String netSite;
private Cursor hander;
/** Creates a new instance of DesktopRuner */
public DesktopRuner() {
this.desktop = Desktop.getDesktop();
}
/*
*检测系统是否支持浏览器
*/
public boolean checkBroswer(){
if(desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)){
return true;
}
else{
return false;
}
}
/*
*运行默认浏览器,并在其中显示指定网址
*/
public void runBroswer(){
netSite = "http://mybass.china-pub.com";
try {
uri = new URI(netSite);
} catch (URISyntaxException ex) {
ex.printStackTrace();
}
try {
desktop.browse(uri);
} catch (IOException ex) {
ex.printStackTrace();
}
}
/*
*改变鼠标形状
*/
public void changeMouse(JLabel label){
hander = new Cursor(Cursor.HAND_CURSOR);
label.setCursor(hander);
}
}
以前在网上看到的,链接忘了
我没有试过,不知行不行,希望对你有些帮助