簡體   English   中英

Swing代碼將數據從2個文本區域復制到剪貼板

[英]Swing Code to copy data from 2 text area to 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);

如果我了解您要嘗試的內容,那么您將嘗試將兩個字段的值都放在剪貼板上,然后讀取它們並再次填充字段。

剪貼板太簡單了,它基本上只能容納一個String。 我建議的是創建一個將放置在剪貼板上的結構,該結構比JSON :-)更適合將數據描述為String。 只需像這樣創建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);

請幫助我進行串聯嗎?

這是我確定您一直使用的基本Java:

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

或者您可以使用StringBuilder

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

然后,當您從剪貼板中獲取數據時,您需要對其進行解析。 您可以使用String.split(...)方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM