ホームページ  >  記事  >  Java  >  Java はクリップボードを使用してプログラム間のデータ交換を実装します

Java はクリップボードを使用してプログラム間のデータ交換を実装します

高洛峰
高洛峰オリジナル
2017-01-11 15:25:111553ブラウズ

この記事の例では、Java がクリップボードを使用してプログラム間でデータを交換する方法を説明します。グラフィカル システムでは、システム クリップボードが非常に重要です。クリップボード機能のないグラフィカル オペレーティング システムがどのように使用されるかを想像するのは困難です。この例では、Java プログラムとシステムのクリップボード間のデータ交換を実現します。「貼り付け」ボタンがクリックされると、Java プログラムはシステムのクリップボードからデータを取得し、「コピー」ボタンがクリックされると、それを JTextArea コンポーネントに表示します。をクリックすると、テキストエリアで選択したテキストがシステムのクリップボードに転送されます。

まず、システム クリップボードのインスタンス参照を取得する必要があります。java.awt.Toolkit クラスには、Clipboard インスタンスを返すための getSystemClipboard() メソッドが用意されており、Toolkit クラスには、Toolkit インスタンスを返すための静的メソッド getDefaultToolkit() が用意されています。 、新しい A Toolkit オブジェクトを作成する必要はありません。具体的な実装コードは次のとおりです:

Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();

ここで、Clipboard クラスは、データ交換を実装するための getContents() メソッドと setContents() メソッドを提供します。

Transferable getContents(Object requester);
Void setContents(Transferable contents, ClipboardOwner owner);

ここでの getContents() メソッドは、システム クリップボードから Transferable オブジェクトを取得します。通常、パラメーター リクエスターはデータ申請者を表し、データのリクエストがこのクラスのインスタンス オブジェクトであることを示します。必要なデータがテキストの場合、Transferable オブジェクトの getTransferData(DataFlavor.stringFlavor) を呼び出して取得できます。実装コードは次のとおりです:

setContents() メソッドは、プログラムからシステムにデータを転送します。パラメータの内容はデータを表します。パラメータの所有者はクリップボードの所有者を表します。

Transferable tr = cb.getContents(this);
String s = (String) tr.getTransferData(DataFlavor.stringFlavor);

上記のステートメントの StringSelection クラスは、選択されたテキストを表します。

上記の分析から、実際には、システム クリップボードには Transferable オブジェクトのコレクションが格納されており、プログラムとシステム クリップボード間のデータ交換は Transferable オブジェクトの転送であることがわかります。プログラムコード:


1.新しいプロジェクトを作成し、JClipDemo という名前を付けます。

2.新しいアプリケーションを作成し、JClipDemo という名前を付けます。メイン ウィンドウに MainFrame という名前を付け、JClipDemo というタイトルを付けます。

3. JTextArea コンポーネント、2 つの JButton、および JPanel コンポーネントを MainFrame クラスのデザイン ウィンドウに追加し、2 つの JButton コンポーネントを JPanel コンポーネント上に配置します。新しいプロパティ Clipboard cb を追加します。具体的なコードは以下の通りです:

StringSelection ss = new StringSelection(this.jTextArea1.getText());
cb.setContents(ss,ss);

4. MainFrame クラスの初期化メソッド jbInit() を記述し、各コンポーネントの初期プロパティ設定を完了し、ボタン コンポーネントのイベント リスナーを追加します。具体的なコードは次のとおりです。システムのクリップボードにデータを送信するための「コピー」ボタンのイベント処理メソッドを記述します。

りー

6.システムクリップボードからデータを取得する「貼り付け」ボタンのイベント処理メソッドを記述します。

public class MainFrame extends JFrame {
private JPanel contentPane;
private BorderLayout borderLayout1 = new BorderLayout();
//创建新的组件
private JTextArea jTextArea1 = new JTextArea();
private JPanel jPanel1 = new JPanel();
private JButton jButton1 = new JButton();
private JButton jButton2 = new JButton();
//剪贴板实例
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
……
}

Java がクリップボードを使用してプログラム間でデータを交換する方法に関するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。