私はJavaスイングの新しいユーザーです。ユーザーがその行をクリックしたときに、行情報を含むポップアップを作成できる必要があります。テーブル クラスに mouseClick イベント リアクションを組み込むことができ、行情報が利用可能になりました。ダイアログボックス/ポップアップボックスを表示できるように、イベントについてメインウィンドウに通知するにはどうすればよいですか?
3 に答える
これを処理するには、いくつかの方法があります。
1)カスタムテーブルクラスにカスタムリスナー(オブザーバーパターン)を持たせることができ、クリックが発生するたびに呼び出されます
2)メインウィンドウでテーブルにメソッドを呼び出すことができます-つまり、テーブルの構築の一部としてメインウィンドウに渡します
3) メイン ウィンドウをテーブルのリスナー (つまり、マウス リスナー) として登録し、代わりにイベントを処理させることができます。
他にもあります、きっと。これらは、私が最も頻繁に使用されているものです。作成するソフトウェアのサイズ、範囲、および意図に応じて、それぞれにメリットとデメリットがあります。これは学校向けのプロジェクトですか、Swing について学ぶために作成されたおもちゃですか、それとも長期的で大規模なプロジェクトになるように設計されていますか? 後者の場合は、Model View Controller (MVC) アーキテクチャの議論を調べることをお勧めします。私の経験では、長期的にはコードのメンテナンスがはるかに簡単になるからです。
幸運を。
次のように実行できます。
myTable.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if(SwingUtilities.isRightMouseButton(e)) {
int index = myTable.rowAtPoint(e.getPoint());
JPopupMenu popup = new JPopupMenu();
popup.add(myMenuAction);
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
});
myMenuAction
次に、テーブルからを使用するアクションを実装しindex
ます。
アクションを実行するには、メイン ウィンドウでメソッドを呼び出すだけです。