Swing怎么实现点击一个按钮,自动复制jtextarea里面的文本?

hmilyld 2007-08-08 05:09:45
RT
点击一个按钮后,就把jtextarea里面的文本信息复制一下,相当于选中后CTRL+C?
...全文
517 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hmilyld 2007-08-09
  • 打赏
  • 举报
回复
谢了楼下的.:)
搞定.
boby 2007-08-08
  • 打赏
  • 举报
回复
你说的剪贴板功能啊,看看Clipboard类把,顺便给你个例子:

import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;

public class CutAndPaste extends JFrame {
private JMenuBar mb = new JMenuBar();

private JMenu edit = new JMenu("Edit");

private JMenuItem cut = new JMenuItem("Cut"), copy = new JMenuItem("Copy"),
paste = new JMenuItem("Paste");

private JTextArea text = new JTextArea(20, 20);

private Clipboard clipbd = getToolkit().getSystemClipboard();

public CutAndPaste() {
cut.addActionListener(new CutL());
copy.addActionListener(new CopyL());
paste.addActionListener(new PasteL());
edit.add(cut);
edit.add(copy);
edit.add(paste);
mb.add(edit);
setJMenuBar(mb);
getContentPane().add(text);
}

class CopyL implements ActionListener {
public void actionPerformed(ActionEvent e) {
String selection = text.getSelectedText();
if (selection == null)
return;
StringSelection clipString = new StringSelection(selection);
clipbd.setContents(clipString, clipString);
}
}

class CutL implements ActionListener {
public void actionPerformed(ActionEvent e) {
String selection = text.getSelectedText();
if (selection == null)
return;
StringSelection clipString = new StringSelection(selection);
clipbd.setContents(clipString, clipString);
text.replaceRange("", text.getSelectionStart(), text
.getSelectionEnd());
}
}

class PasteL implements ActionListener {
public void actionPerformed(ActionEvent e) {
Transferable clipData = clipbd.getContents(CutAndPaste.this);
try {
String clipString = (String) clipData
.getTransferData(DataFlavor.stringFlavor);
text.replaceRange(clipString, text.getSelectionStart(), text
.getSelectionEnd());
} catch (Exception ex) {
System.err.println("Not String flavor");
}
}
}

public static void main(String[] args) {
run(new CutAndPaste(), 300, 200);
}

public static void run(JFrame frame, int width, int height) {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(width, height);
frame.setVisible(true);
}
}
ukeychen 2007-08-08
  • 打赏
  • 举报
回复
up
hmilyld 2007-08-08
  • 打赏
  • 举报
回复
不是这个意思,
这样是得到那个文本,
我想要的是,点击一个 复制 按钮,
然后到其他地方,比如说自己新建个记事本之类的就能粘贴了这样的.
boby 2007-08-08
  • 打赏
  • 举报
回复
给按钮加个ActionListener,再加一个String,比如String copyText ,
点按钮后copyText = JTextArea.getText();

62,634

社区成员

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

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