制作MouseAdapter是指它被添加到的JComponent

时间:2018-03-21 11:17:00

标签: java swing mouselistener

我有很多按钮,它们应该以相同的方式起作用,但在按下时更改链接到按钮的不同变量(主要是颜色)。我想尽可能减少代码(并且不要输入相同的东西10次)。

我如何编写这个适配器,以便它可以用于button1,以及button2?

MouseAdapter customMouseAdapter = new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                button1.setForeground(Color.WHITE);

            }
        };

    button1.addMouseListener(customMouseAdapter);
    button2.addMouseListener(customMouseAdapter);

1 个答案:

答案 0 :(得分:0)

你可以这样做。

inspect

或者您可以像其他建议一样执行此操作

public class ColourMouseAdapter extends MouseAdapter
{
    private final Color colour;
    private final JButton button;
    public ColourMouseAdapter(JButton button, Color colour)
    {
        this.colour = colour;
        this.button = button;
    }

    @Override
    public void mouseClicked(MouseEvent e)
    {
         button.setForeground(colour);
    }
}
JButton jbutton = new JButton();
jButton.addMouseListener(new ColourMouseAdapter(jbutton, Color.WHITE));