私は基本的にボタンがたくさんあるスイングプログラムを作成しています.リスナーを各ボタンに個別に追加するのではJPanel
なく、代わりにリスナーを追加し、関数を使用してイベントを読み取る.getSource()
ことができれば、物事はずっと簡単ですか?出来ますか?
3 に答える
コンポーネントにリスナーを追加することは、そのリスナーを内部コンポーネントにも追加することを意味するわけではありません。代わりに、ボタンのグループ(ボタン配列など)を使用して、1回の反復ですべてのボタンにリスナーを追加することを検討してください。
for(JButton button : buttonsArray)
button.addActionListener(yourActionListener);
基本的にボタンが多いswingプログラムを作成していて、各ボタンにリスナーを個別に追加するのではなく、JPanelにリスナーを追加して、.getSource()関数を使用してイベントを読み取ることができればと考えていました。 、物事はずっと簡単になりますか?出来ますか?
追加することはできません、それを行うことができるActionListener
だけMouseListener
ですが、正しい方法ではありませんJButton
コードによっては、すべてのJButtonにActionListenerを追加し、どのJButtonが押されているかを判別する必要があります。
put/getClientProperty
ActionCommand
プログラムでinstide配列をループ
JButtons
し、イベントとを比較しますJButton
いいえ、できません。ドキュメントをご覧ください
すべてのボタンに同じリスナーの動作がある場合は、それらをに追加しArrayList<JButton>
、ループで同じインスタンスを追加しますActionListener