这要用到系统剪贴板,下面是我以前写的一个小例子,实现从左边窗口中剪切到右窗口,你把
里面的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");
}
}
里面的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");
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货