2

クリック後に JButton の背景を変更しようとしています。現在、私のボタンは GridLayout (3x3) に配置されており、次のようになっています。

tiles.add(new JButton(new AbstractAction("") {
    @Override
    public void actionPerformed(ActionEvent e) {
        this.setIcon("foo.png");
    }
}));

これは動作しません。実行されたアクション内から画像の背景を操作するにはどうすればよいですか?

4

2 に答える 2

4

Swing JToolbarButtonを押すと示されるように、これにはAJToggleButtonが理想的かもしれません。

ボタンが1回だけクリックできるようにするには、コードを追加する必要があることに注意してください。

または、標準JButtonを使用してを呼び出すこともできますAbstractButton.setDisabledIcon(Icon)。クリックしたときにボタンを無効にすると、代替アイコンに切り替わります。

于 2011-12-05T04:05:59.640 に答える
1

MouseListenerを実装する独自のリスナーを作成できます。このようにして、ボタンの背景がいつ変わるか(マウスを離したとき、押したときなど)を制御できます。これが例です

//Add the listener to the button
      myButton.addMouseListener(new customActionListener());

//Create the listener
    class customActionListener implements MouseListener {
        public void mouseExited(MouseEvent e) {
        }

        public void mouseEntered(MouseEvent e) {
        }

        public void mouseReleased(MouseEvent e) {
        }

        public void mousePressed(MouseEvent e) {
        Icon icon = new ImageIcon("icon.gif");
        myButton.setIcon(icon);

        }

        public void mouseClicked(MouseEvent e) {
        }
    }

背景をデフォルトに戻したいときはいつでも、次を使用します。

myButton.setIcon(new ImageIcon());

于 2011-12-05T04:10:09.740 に答える