2016-11-10 19 views
0

[![画像の説明をここに入力してください] [1]] [1]私はJava Swingを初めて使用しています。私は2つのテキスト領域とボタン "クリップボードにコピー" GUIレイアウトを作成している。最初のテキストエリアの内容をクリップボードにコピーするコードがありますが、2番目のテキストエリアにコンテンツを追加する方法やjtextエリアに対応するラベルを追加する方法がわかりません。2テキスト領域からクリップボードにデータをコピーするコードをスウィング

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

[クリップボードからの読み取り可能なテキストのみを取得する](http://stackoverflow.com/questions/7105778/get-readable-text-only-from-clipboard) – Berger

+0

詳細をご記入ください。質問には「テキストエリアをクリップボードにコピーする」と書かれていますが、テキストには他に何かを尋ねて、別のテキストエリアとそれに関係するものについて言います。 –

+0

クリップボードに一度に1つのデータのみを追加できます。新しいデータを追加すると、既存のデータが置き換えられます。 – camickr

答えて

0

私はあなたが何をしようとしている理解している場合は、クリップボード上のフィールドの両方の値を入れしようとし、それらを読んで、再びフィールドに移入されているよりも。

クリップボードは単純すぎるため、基本的に1つの文字列しか保持できません。私が提案しているのは、クリップボード上に配置する構造体を作成することです。JSONよりもStringとしてデータを記述する方がよいでしょう:-)。

[ 
    { 
     "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); 
+0

質問がありますか?私はJavaにとって非常に新しいです。私はJava Swingを使用しようとしています。あなたが与えたJSONコードはJavascriptを使用しています。それでも使えますか?私は確信していません.. – Manu

+0

それは、Javascriptを使用していない、あなたはそのアイデアを得たか?あなたが見ているのはJSONです、JSONはJavascriptではありません。 JSONはデータ交換形式で、データと構造を表現したり、さまざまな言語から読み書きすることができます。 Javaオブジェクト、Python辞書、Javascriptオブジェクトなどを表すことができます。この場合、私たちはちょうどいくつかのものを構築するためにそれを使用しました。 –

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(...)メソッドを使用できます。

+0

ありがとう、私はすぐに試してみましょう.. – Manu

+0

私は混乱を並べ替えるために上記のスクリーンショットを追加しました。基本的には、2つのテキスト領域の内容をラベルとともにコピーしたいと思います。私が間違っていない場合、あなたが提供したコード – Manu

+0

は、ラベル名とテキストエリアの内容を取得しません。正しい? – Manu

関連する問題