1

オラクルが提供する Java Trail を読みましたが、オブジェクトのプロパティはアクションのプロパティと一致するように設定されているとのことでした。これが共有されている限定されたプロパティのセットなのか、アクションを設定するオブジェクトと同じクラスにアクションがキャストされているのかを知りたいです。

私が持っている別の質問はそのようなものです...すべてをリセットしないように、設定しているコンポーネントと同じプロパティを持つようにアクションを設定することは可能ですか? 私が考えることができる唯一の回避策は、オブジェクトで何かを行う前にオブジェクトのアクションを設定するか、アクションメソッドまたはコンストラクターを介してオブジェクトを渡し、その時点で必要なすべての値を設定することです。しかし、プログラムの後半で何も邪魔することなくアクションを設定できることを望んでいました。それはより便利です。

例 ...

JMenuItem myItem = new JMenuItem("someText");
myItem.setAction(myAction);// Clears the text from my menu item which is the problem

ありがとう

4

1 に答える 1

3

自分:

最初から「someText」をアクションに関連付けないのはなぜですか?

君は:

それ、どうやったら出来るの?

解決:

  // can also pass in an icon to this constructor as a 2nd parameter
  Action myAction = new AbstractAction("Some Text") {
     {
        // set properties here including mnemmonic
        putValue(MNEMONIC_KEY, KeyEvent.VK_S);
     }

     @Override
     public void actionPerformed(ActionEvent e) {
        // action initiated code goes here
     }
  };

また、Action の NAME プロパティを介してボタンのテキストを設定することもできます。

  Action myAction = new AbstractAction() {
     {
        putValue(NAME, "Some Text");
        putValue(MNEMONIC_KEY, KeyEvent.VK_S);
     }

     // ... etc...
  };
于 2012-11-30T22:29:18.117 に答える