Swing Code将数据从2个文本区域复制到剪贴板

时间:2016-11-10 15:32:37

标签: java swing clipboard

[![在此处输入图片说明] [1]] [1]我是Java Swing的新手。我有一个创建GUI布局将2个文本区域和一个按钮"复制到剪贴板"。我有一个代码,将第一个文本区域的内容复制到剪贴板,但不知道如何在第二个文本区域添加内容和与jtext区域对应的标签。

String get= hActionText.getText();
   StringSelection selec= new StringSelection(get);
   Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
   clipboard.setContents(selec, selec);

2 个答案:

答案 0 :(得分:0)

如果我理解你在尝试什么,你试图将两个字段的值放在剪贴板上,然后再读取它们并再次填充字段。

剪贴板太简单了,它基本上只能容纳一个字符串。我建议创建一个你将放在剪贴板上的结构,哪个结构更适合将数据描述为字符串而不是JSON :-)。只需创建如下的JSON内容:

[
    {
       "label":"field1",
       "content":"contentFromField1"
    },
    {
       "label":"field2",
       "content":"contentFromField2"
    }
]

并将其放在剪贴板上。当然,在阅读剪贴板后,您总是必须检查实际可反序列化的内容。

要创建这样的内容,您可以使用像json-simple这样的Java库。一个简单的例子,内容如上:

JSONObject obj1 = new JSONObject();
obj1.put("label", "field1");
obj1.put("content", "contentFromField1);

JSONObject obj2 = new JSONObject();
obj2.put("label", "field2");
obj2.put("content", "contentFromField2);

JSONArray list = new JSONArray();
list.add(obj1);
list.add(obj2);

答案 1 :(得分:0)

  

请帮我连接?

这是我确定你一直使用的基本java:

String textForClipboard = label1.getText() + ":" + label2.getText();

或者您可以使用StringBuilder

StringBuilder sb = new StringBuilder();
sb.append( labe1.getText() );
sb.append( ":" );
sb.append( label2.getText() );

然后,当您从剪贴板获取数据时,您需要解析它。您可以使用String.split(...)方法。