1

ボタンが2つあるので、

JButton playB = new JButton(new ImageIcon("res/playA.png"));
playB.setBorder(BorderFactory.createEmptyBorder());
playB.setContentAreaFilled(false);
JButton playA = new JButton(new ImageIcon("res/playA.png"));
playA.setBorder(BorderFactory.createEmptyBorder());
playA.setContentAreaFilled(false);

マウスをボタン A の上に移動すると、ボタン B に切り替わるようにするにはどうすればよいですか? 私が考えられるのは、マウスリスナーを使用することだけですが、もっと良い方法があるかどうか疑問に思っています。

4

1 に答える 1

2

マウスをボタン A の上に移動すると、ボタン B に切り替わるようにするにはどうすればよいですか? 私が考えられるのは、マウスリスナーを使用することだけですが、もっと良い方法があるかどうか疑問に思っています。

注: setRolloverIcon メソッドはこれには使用できません。

例えば

JButton.getModel().addChangeListener(new ChangeListener() {
    @Override
    public void stateChanged(ChangeEvent e) {
        ButtonModel model = (ButtonModel) e.getSource();
        if (model.isRollover()) {
            //doSomething
        } else if (model.isPressed()) {
           //doSomething
        }  // etc
    }
});

編集

再び戻る

マウスをボタン A の上に移動すると、ボタン B に切り替わるようにするにはどうすればよいですか? 私が考えられるのは、マウスリスナーを使用することだけですが、もっと良い方法があるかどうか疑問に思っています。

  • 結論では、最初JButton (button A)はそうではなく、ユーザー側からMouseまたはKeyEvents にアクセスできることはありません。これらのイベントの両方がそれを (すぐに) に切り替えるためroll_over

  • JButton.doClick()次に、sからプログラムで呼び出す方法は1つしかありませんKeyBindingが、いつ、どのように、なぜ理由が必要なのかという疑問があります...単純なことを複雑にします

于 2013-10-14T10:12:14.637 に答える