如何在JEditorPane中把选中的值放到内存中!!高手请进

yfh0919 2003-04-25 05:33:26
如何在JEditorPane中把选中的值放到内存中,也就是选中JEditorPane的一些值例如abcdefg把这些值复制 即相当于 ctrl + c 得功能!!急阿!!
...全文
71 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanmeng163 2003-04-25
  • 打赏
  • 举报
回复
这要用到系统剪贴板,下面是我以前写的一个小例子,实现从左边窗口中剪切到右窗口,你把
里面的JTextArea换成JEditorPane就行了。希望对你有所帮助。

import javax.swing.JFrame;
import java.awt.event.ActionListener;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.ActionEvent;
import javax.swing.JTextArea;
import javax.swing.JPanel;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Clipboard;
import java.awt.Toolkit;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.DataFlavor;

public class Trans extends JFrame {
JMenuBar jMenuBar1 = new JMenuBar();

JMenu jMenu1 = new JMenu("Edit");

JMenuItem cut = new JMenuItem("Cut");

JMenuItem paste = new JMenuItem("Paste");

JTextArea text1 = new JTextArea(20, 20);

JTextArea text2 = new JTextArea(20, 20);
JPanel contentPane = new JPanel();
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

public Trans(String s) {
super(s);
jMenuBar1.add(jMenu1);
jMenu1.add(cut);
jMenu1.add(paste);
this.setJMenuBar(jMenuBar1);
contentPane.add(text1);
contentPane.add(text2);
this.setContentPane(contentPane);
cut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
String temp = text1.getSelectedText();
StringSelection text = new StringSelection(temp);
clipboard.setContents(text, null);
int nStart = text1.getSelectionStart();
int nEnd = text1.getSelectionEnd();
text1.replaceRange("", nStart, nEnd);
}
});
paste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
Transferable contents = clipboard.getContents(this);
DataFlavor flavor = DataFlavor.stringFlavor;
if(contents.isDataFlavorSupported(flavor)) {
try {
String str = (String)contents.getTransferData(flavor);
text2.append(str);
} catch (Exception e) {
text1.setText(e.getMessage());
}
}
}
});
this.setBounds(100, 100, 500, 450);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.show();
}
public static void main(String[] args) {
new Trans("Demo Clipborad");
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧