1

Enterキーが押されたときだけでなく、ユーザーが別のコンポーネントをクリックするたびにリスナーを起動する必要があります。何百もの JTextField があり、それらを識別する唯一の方法は配列インデックスを使用することであるため、ソースを識別する必要もあります。

ActionListener からソースを取得できますが、ActionListener はユーザーが Enter キーを押したときにのみ起動します。

DocumentListener を JTextField の関連付けられたドキュメントに添付できますが、JTextField 自体への参照を取得する方法がないようです。

これどうやってするの?

4

2 に答える 2

1

私は何百もの JTextField を持っていますが、それらを識別する唯一の方法は、配列インデックスを使用することです。

JTable何百もの代わりに使用JTextField's

ActionListener からソースを取得できますが、ActionListener はユーザーが Enter キーを押したときにのみ起動します。

ActionListenerENTER keyが押された場合にのみ起動され、 JTextFieldJFormattedTextFieldおよびJPasswordField

DocumentListener を JTextField の関連付けられた Document に添付できますが、JTextField 自体への参照を取得する方法はないようです。

それぞれから、このイベントの発火Listenersからどれを識別することができますかJComponents

于 2012-12-29T00:47:14.750 に答える
1

How to Write a Document Listenerに関する Oracle の説明では、Documentに 1 つ以上のプロパティを設定できるようです。

説明からの 2 行のコードを次に示します。

textField.getDocument().addDocumentListener(new MyDocumentListener());
textField.getDocument().putProperty("name", "Text Field");

さて、2 行目を次のように変更できます。

textField.getDocument().putProperty("index", Integer.toString(index));

ドキュメント リスナー コードの後半で、このメソッドを使用してプロパティを取得します。

document.getProperty("index");
于 2012-12-29T00:47:55.873 に答える