私JLabel
はMouseListener
label.addMouseListener( new ClickController() );
実行するアクションはどこにありますか
class ClickController{
...
public void mouseClicked(MouseEvent me) {
// retrieve Label object
}
マウスクリックメソッド内からオブジェクトにアクセスできるように、オブジェクトをJLabelに関連付ける方法はありますか?
編集:
よりわかりやすい例を挙げると、ここで私がやろうとしているのは、トランプのグラフィック表現としてJLabelsを設定することです。ラベルは、すべての実際のデータを含むオブジェクトカードを表すことを目的としています。そのため、そのCardオブジェクトをJLabelに関連付けたいと思います。
解決:
「HovercraftFullOfEels」が示唆me.getSource()
するように、それが進むべき道です。私の特定のケースでは、次のようになります。
Card card = new Card();
label.putClientProperty("anythingiwant", card);
label.addMouseListener( new ClickController() );
リスナーからCardオブジェクトを取得します。
public void mouseClicked(MouseEvent me) {
JLabel label = (JLabel) me.getSource();
Card card = (Card) label.getClientProperty("anythingiwant");
// do anything with card
}