0

JFrame で作成されたスイング GUI のタブイン タブアウト アクションをリッスンしようとしています。ウィンドウが選択されるたびにユーザークリップボードを取得する JFrame に JTextField が追加されているため、ユーザーはプログラム間でタブを使用し、URL をコピーして、プログラムに戻ると、この JTextField にコピーされた URL 文字列が入力されます。

編集:

私はこれを試しました:

    frame.addFocusListener(
            new FocusListener() {
                public void focusGained(FocusEvent e) {

                url= getClipboardData();
                }

                @Override
                public void focusLost(FocusEvent arg0) {
                    // TODO Auto-generated method stub

                }
            }

    );

それは動作しません

4

3 に答える 3

1

必要なのは、ActionListener ではなく FocusListener です。Java Doc を調べれば、使い方がわかります。それは簡単です。

于 2009-09-05T17:32:38.617 に答える
1

フレームはフォーカス イベントを受け取りません。フレーム上のコンポーネントがフォーカス イベントを取得します。

フレームがいつフォーカスされるかを知りたい場合は、WindowListener を使用して windowActivated イベントを処理します。

于 2009-09-05T19:44:14.460 に答える
0

クリップボードのデータをテキスト フィールドに設定していないようです。

frame.addFocusListener(new FocusListener() {
    public void focusGained(FocusEvent e) {
        getJTextField().setText(getClipboardData());
    }
    public void focusLost(FocusEvent e) {
        //ignored
    }
});

そのようなものはおそらくあなたの問題を解決するでしょう

于 2009-09-05T17:52:05.317 に答える