我希望我的按钮在鼠标(悬停),按下(活动)时改变颜色,并保持这种状态,直到用户选择其他选项为止。因此,将始终选择其中之一。

我有三个按钮-分别是冰锥,方形和三角形。我的代码:

private static MouseListener ButtonMouseListener = new MouseAdapter () {

        public void mouseEntered(MouseEvent evt) {
            Component source = evt.getComponent();
            source.setBackground(new Color(91, 90, 90));
        }

        public void mouseExited(MouseEvent evt) {
            Component source = evt.getComponent();
            source.setBackground(new Color(64, 64, 64));
        }

        public void mousePressed(MouseEvent evt) {
            Component source = evt.getComponent();
            source.setBackground(new Color(46, 46, 46));
        }
    };


因此,我希望按钮在将鼠标悬停在(mouseEntered)上时更改颜色,并在有人停止悬停时再次将颜色更改为默认颜色(这就是为什么我使用mouseExited的原因)。接下来的事情是我希望它们在被选择时改变颜色,所以mousePressed。问题是,当我将光标移到按钮外时,由于mouseExited它将变为另一种颜色,而我不希望那样。它必须保持“按下的颜色”,直到用户选择三个按钮中的另一个。我不知道如何实现这一目标,我尝试了不同的选择,但没有任何方法可以实现我想要的方式。

最佳答案

要更改输入颜色,您需要实现事件->鼠标-> mouseEntered。确保在mouseExited上实现它
鼠标按下颜色更改时,您需要实现Event-> Action。在actionPerformed中,您可以设置按钮颜色。例如 :

jButton7.setBackground(new Color(11, 118, 219));
jButton1.setBackground(new Color(15,44,123));
jButton8.setBackground(new Color(15,44,123));
jButton9.setBackground(new Color(15,44,123));

10-08 20:17