import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import javax.swing.JTextPane;
public class TestJTextPane extends Frame {
/**
*
*/
private static final long serialVersionUID = -4287324146188872577L;
private BorderLayout borderLayout1 = new BorderLayout();
private JTextPane jTable1;
public static void main(String args[]) {
TestJTextPane myframe = new TestJTextPane();
myframe.setSize(new Dimension(250, 250));
myframe.setVisible(true);
}
public TestJTextPane() {
super();
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
jTable1 = new JTextPane();
jTable1.setContentType("text/html");
jTable1.setText("<html>http:/:/dfsaaaaaaaaaaaaaaaaajkjkldsj<wbr>/</wbr>akdfjsakljgfdsajlgkdjsakljfldsjalfjdsal</html>");
this.setTitle("Excel Lent JTABLE");
this.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setBackground(Color.white);
this.add(jTable1, BorderLayout.CENTER);
// 这就是添加复制和粘贴功能的那一行!
JTextPaneAdapter myAd = new JTextPaneAdapter(jTable1);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.datatransfer.*;
import java.util.*;
public class JTextPaneAdapter implements ActionListener {
private Clipboard system;
private JTextPane textPane;
public JTextPaneAdapter(JTextPane myJTable) {
textPane = myJTable;
KeyStroke copy = KeyStroke.getKeyStroke(KeyEvent.VK_C,
ActionEvent.CTRL_MASK, false);
// 确定复制按键用户可以对其进行修改
// 以实现其它按键组合的复制功能。
textPane.registerKeyboardAction(this, "Copy", copy,
JComponent.WHEN_FOCUSED);
}
/**
* 此适配器运行图表的公共读方法。
*/
public JTextPane getTextPane() {
return textPane;
}
/**
* 在我们监听此实现的按键上激活这种方法。 此处,它监听复制和粘贴 ActionCommands。 而且此后复制动作无法执行。
*/
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().compareTo("Copy") == 0) {
String text = textPane.getSelectedText();
if(text.indexOf("/", 10) > 0)
{
text = text.replace(" /", "/");
if(text.indexOf("://") > 0)
{
StringSelection stsel = new StringSelection(text);
system = Toolkit.getDefaultToolkit().getSystemClipboard();
system.setContents(stsel, stsel);
return;
}
}
StringSelection stsel = new StringSelection(textPane.getSelectedText());
system = Toolkit.getDefaultToolkit().getSystemClipboard();
system.setContents(stsel, stsel);
}
}
}
分享到:
相关推荐
JAVA-----JTextPane实例 代码
JTextPane使用,可以传图片,文字等
import javax.swing.JTextPane; import javax.swing.UIManager; import javax.swing.WindowConstants; import javax.swing.text.AttributeSet; import javax.swing.text.DefaultStyledDocument; import javax....
SWT JTextPane 可以把控件中需要的字符串的颜色修改成自己想要的颜色
Swing组件(javax.swing.-) 面板:JPanel 标签化窗格:JTabbedPane 拆分窗格:JSplitPane 滚动窗格:JScrollPane 工具栏:JToolBar 桌面窗格:JDesktopPane 内部框架:JInternalFrame 分层窗格:JLayeredPane ...
演示、说明程序 博文链接:https://bps.iteye.com/blog/136627
NULL 博文链接:https://icarusliu.iteye.com/blog/1412007
使用java,swing 实现gps, 源码提供,简要如下: package gps; import java.awt.event.ActionListener; import javax.swing.*; import java.awt.event.*; import java.io.*;... private JTextPane jTextPan
本源码实现了 文本区里加图片和插入艺术字的功能 窗口使用Windows窗体风格
NULL 博文链接:https://icarusliu.iteye.com/blog/2098986
这个示例并不是Swing的完整演示,演示了一些常规组件的使用方法,也演示了一些组件的巧妙运用(YY一下,哈哈),如JTextArea的取消重做,用JLayeredPane实现动态的悬浮框,JTextPane演示等等。 我上传的是NetBean的...
该程序是一个基于 Swing/JTextPane 的 JavaScript 编辑器。 除了着色之外,X 还为 Web URL 加了下划线并允许单击它们。 可以从“文件”部分下载X(带有源代码)。 有关 CalclipseLib 和其他 Calclipse 产品的更多...
2. 事件驱动编程:代码中没有使用事件驱动编程思想,但是可以通过添加事件监听器来实现事件驱动编程。 五、开发工具知识 1. Jigloo GUI Builder:代码中的注释表明,使用了Jigloo GUI Builder工具来设计图形用户...