java mass按钮颜色搜索

java mass按钮颜色搜索,java,jbutton,Java,Jbutton,所以我最近又开始使用java,我想制作一个程序,它有64个按钮,所有按钮都有单独的图片。每当您左键单击一个按钮时,它将变为蓝色;右键单击时,它将变为红色;右键单击时,它将重置该单个按钮。这是我到目前为止所拥有的——我只能发布两个链接-- 当我把程序的基础都设置好后,我遇到了一个问题,每当我点击鼠标中键时,我就可以再次点击鼠标左键,将多个按钮更改为单一颜色,下面是一个例子: 当前,单击的工作方式如下: JButton CornerCrimson = new JButton(); Corne

所以我最近又开始使用java,我想制作一个程序,它有64个按钮,所有按钮都有单独的图片。每当您左键单击一个按钮时,它将变为蓝色;右键单击时,它将变为红色;右键单击时,它将重置该单个按钮。这是我到目前为止所拥有的——我只能发布两个链接--

当我把程序的基础都设置好后,我遇到了一个问题,每当我点击鼠标中键时,我就可以再次点击鼠标左键,将多个按钮更改为单一颜色,下面是一个例子:

当前,单击的工作方式如下:

JButton CornerCrimson = new JButton();
    CornerCrimson.setIcon(new ImageIcon("src/DG Keys/Corners/Crimson_corner_key.png"));
    CornerCrimson.addMouseListener(new MouseListener() {
        public void mouseClicked(MouseEvent f) {
        }

        public void mouseEntered(MouseEvent f) {
        }

        public void mouseExited(MouseEvent f) {
        }

        public void mousePressed(MouseEvent e) {
            if (SwingUtilities.isLeftMouseButton(e)) {
                if (g1 == 0) {
                    CornerCrimson.setBackground(Color.blue);
                    g1++;
                }

            } else if (SwingUtilities.isRightMouseButton(e)) {
                if (g2 == 0) {
                    CornerCrimson.setBackground(Color.red);
                    g2++;
                }
            } else if (SwingUtilities.isMiddleMouseButton(e)) {
                CornerCrimson.setBackground(null);
                g1 = 0;
                g2 = 0;
            }

        }

        public void mouseReleased(MouseEvent e) {

        }

    });
以下是完整代码的粘贴箱:

有没有办法让我可以把这个鼠标监听器应用到所有的按钮上,并检查我是否用鼠标中键点击一个有颜色的按钮

我正在考虑做一个数组,但我不知道如何做,仍然得到按钮有这样的单独图片
JButton CrescentGreen=new JButton();
setIcon(新的图像图标(“src/DG key/Crescent/Green_Crescent_key.png”);
面板。添加(绿色)

如果这没有任何意义,请在下面提问,我会更准确地回答,任何关于整理这些的帮助都将不胜感激

TL;DR 64按钮,鼠标听写器适用于所有,单独颜色/检查,单独图片


感谢您的时间

首先创建一个类,我们称之为MyMouseListener

public class MyMouseListener extends MouseListener {

    private HowEverYourBaseClassIsCalled myDataObject;

    public MyMouseListener(HowEverYourBaseClassIsCalled myDataObject)
    {
        this.myDataObject = myDataObject;
    }

    public void mouseClicked(MouseEvent f) {
    }

    public void mouseEntered(MouseEvent f) {
    }

    public void mouseExited(MouseEvent f) {
    }

    public void mousePressed(MouseEvent e) {
        if (SwingUtilities.isLeftMouseButton(e)) {
            if (this.myDataObject.g1 == 0) {
                CornerCrimson.setBackground(Color.blue);
                this.myDataObject.g1++;
            }

        } else if (SwingUtilities.isRightMouseButton(e)) {
            if (this.myDataObject.g2 == 0) {
                CornerCrimson.setBackground(Color.red);
                this.myDataObject.g2++;
            }
        } else if (SwingUtilities.isMiddleMouseButton(e)) {
            CornerCrimson.setBackground(null);
            this.myDataObject.g1 = 0;
            this.myDataObject.g2 = 0;
        }

    }

    public void mouseReleased(MouseEvent e) {

    }

}
HoweverYourBaseClassScaled类型位于存储g值的任何位置。 然后,当您创建所有按钮时,您只需添加

JButton CornerCrimson = new JButton();
CornerCrimson.setIcon(new ImageIcon("src/DG Keys/Corners/Crimson_corner_key.png"));
CornerCrimson.addMouseListener(new MyMouseListener(this));

首先创建一个类,我们称之为MyMouseListener

public class MyMouseListener extends MouseListener {

    private HowEverYourBaseClassIsCalled myDataObject;

    public MyMouseListener(HowEverYourBaseClassIsCalled myDataObject)
    {
        this.myDataObject = myDataObject;
    }

    public void mouseClicked(MouseEvent f) {
    }

    public void mouseEntered(MouseEvent f) {
    }

    public void mouseExited(MouseEvent f) {
    }

    public void mousePressed(MouseEvent e) {
        if (SwingUtilities.isLeftMouseButton(e)) {
            if (this.myDataObject.g1 == 0) {
                CornerCrimson.setBackground(Color.blue);
                this.myDataObject.g1++;
            }

        } else if (SwingUtilities.isRightMouseButton(e)) {
            if (this.myDataObject.g2 == 0) {
                CornerCrimson.setBackground(Color.red);
                this.myDataObject.g2++;
            }
        } else if (SwingUtilities.isMiddleMouseButton(e)) {
            CornerCrimson.setBackground(null);
            this.myDataObject.g1 = 0;
            this.myDataObject.g2 = 0;
        }

    }

    public void mouseReleased(MouseEvent e) {

    }

}
HoweverYourBaseClassScaled类型位于存储g值的任何位置。 然后,当您创建所有按钮时,您只需添加

JButton CornerCrimson = new JButton();
CornerCrimson.setIcon(new ImageIcon("src/DG Keys/Corners/Crimson_corner_key.png"));
CornerCrimson.addMouseListener(new MyMouseListener(this));

制作你自己的鼠标,不要使用匿名版本。@Nozdrum你是什么意思?制作你自己的鼠标,不要使用匿名版本。@Nozdrum你是什么意思?