HyperlinkListener
来源:互联网 发布:cydia软件源2016 编辑:程序博客网 时间:2024/05/08 01:52
在JEditorPane中引用HyperlinkListener
import java.awt.BorderLayout;
import java.io.File;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
public class EditorPaneSample {
public static void main(String args[]) throws IOException {
JFrame f = new JFrame("JEditorPane Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JEditorPane editor = new JEditorPane("text/html",
"<center><a herf=/"/">Three</a><center>");
editor.setEditable(false);
HyperlinkListener hyperlinkListener = new ActivatedHyperlinkListener(f,
editor);
editor.addHyperlinkListener(hyperlinkListener);
JScrollPane scrollPane = new JScrollPane(editor);
f.getContentPane().add(scrollPane, BorderLayout.CENTER);
f.setSize(300, 200);
f.setVisible(true);
}
}
class ActivatedHyperlinkListener implements HyperlinkListener {
JFrame frame;
JEditorPane editorPane;
public ActivatedHyperlinkListener(JFrame frame, JEditorPane editorPane) {
this.frame = frame;
this.editorPane = editorPane;
}
public void hyperlinkUpdate(HyperlinkEvent hyperlinkEvent) {
HyperlinkEvent.EventType type = hyperlinkEvent.getEventType();
if (type == HyperlinkEvent.EventType.ACTIVATED) {
Runnable runner = new Runnable() {
public void run() {
JFileChooser chooser = new JFileChooser(".");
chooser.setAcceptAllFileFilterUsed(false);
int status = chooser.showOpenDialog(editorPane);
if (status == JFileChooser.APPROVE_OPTION) {
File f = chooser.getSelectedFile();
System.out.println(f);
}
}
};
SwingUtilities.invokeLater(runner);
}
}
}
改进一下,不同连接触发不同事件:
import java.awt.BorderLayout;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.swing.JEditorPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
public class EditorPaneSample {
public static void main(String args[]) throws IOException {
JFrame f = new JFrame("JEditorPane Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JEditorPane editor = new JEditorPane("text/html",
"<center><li><a herf=/"http://three/">Three</a></li><li>"
+ "<a herf=/"http://one/">One</a></li><center>);
editor.setEditable(false);
HyperlinkListener hyperlinkListener = new ActivatedHyperlinkListener(f,
editor);
editor.addHyperlinkListener(hyperlinkListener);
JScrollPane scrollPane = new JScrollPane(editor);
f.getContentPane().add(scrollPane, BorderLayout.CENTER);
f.setSize(300, 200);
f.setVisible(true);
}
}
class ActivatedHyperlinkListener implements HyperlinkListener {
JFrame frame;
JEditorPane editorPane;
public ActivatedHyperlinkListener(JFrame frame, JEditorPane editorPane) {
this.frame = frame;
this.editorPane = editorPane;
}
public void hyperlinkUpdate(HyperlinkEvent hyperlinkEvent) {
HyperlinkEvent.EventType type = hyperlinkEvent.getEventType();
final URL url = hyperlinkEvent.getURL();
if (type == HyperlinkEvent.EventType.ACTIVATED) {
if (url.toString().equals("http://one")) {
Runnable runner = new Runnable() {
public void run() {
JFileChooser chooser = new JFileChooser(".");
chooser.setAcceptAllFileFilterUsed(false);
int status = chooser.showOpenDialog(editorPane);
if (status == JFileChooser.APPROVE_OPTION) {
File f = chooser.getSelectedFile();
System.out.println(f);
}
}
};
SwingUtilities.invokeLater(runner);
} else if (url.toString().equals("http://three")) {
Runnable runner = new Runnable() {
public void run() {
JOptionPane.showMessageDialog(null, "three", null,
JOptionPane.INFORMATION_MESSAGE, null);
}
};
SwingUtilities.invokeLater(runner);
}
}
}
}
- HyperlinkListener
- JTextPane(JEditorPane) 的超链接事件监听(HyperlinkListener)
- J2EE+PointBase配置
- ScanReg命令行参数
- 关于Java栈与堆的思考
- jdk和Tomcat设置
- mingw
- HyperlinkListener
- 设计工具提示栏
- 设置输出文本文字
- "After end of result set“错误
- 深入浅出C# 中文版 图文皆译 第三章 page109
- 动态连接数据库的配置问题 ACCESS +SQL 2000
- 数字格式化
- 出差
- It’s never too late for self-improvement