1

私は MVC 設計に従おうとしていますが、現在 Controller クラスで MouseAdapter を作成しています。モデル クラスの 1 つに GridLayout と同じサイズの配列があります。したがって、誰かがグリッド内のどこかで JPanel をクリックすると、MouseAdapter がモデルに通知して何かを実行します。JPanels は別のクラス View にあります。

しかし、そのためには、その特定の JPanel のインデックス/位置が必要です。それを取得する方法はありますか?

MouseEvent の GetX および GetY メソッドをチェックアウトしました。

GetX - ソース コンポーネントに対するイベントの水平 x 位置を返します。

Get Y - ソース コンポーネントに対するイベントの垂直方向の y 位置を返します。

ソースコンポーネントに対して、JPanel の左上隅が 0, 0 ということですか? では、GridLayout のどのパネルがクリックされたかを知るにはどうすればよいでしょうか?

4

2 に答える 2

1

コンポーネントに追加するマウス リスナーに必要な情報を入力します。マッピングとルックアップを行うよりも、セットアップでこれを行う方が簡単です。

于 2011-01-13T16:15:38.087 に答える
0

ビュークラスでマップを構築し、メソッドを作成できます

public void getJPanelPos(JPanel panel) 

イベントのJPanelソースの位置を取得する

于 2011-01-13T16:14:18.470 に答える