繁体   English   中英

单击该面板时如何在面板上设置新的背景颜色?

[英]How to set new background color on a panel when that panel is clicked?

就像标题所说的那样,当点击该面板时,我正在尝试为10个面板中的1个分配新颜色。 到目前为止代码看起来像这样。

public void setBoard()
{

    for(int i = 0; i < NUM; i++) {
        panel[i] = new JPanel();
        panel1.add(panel[i]);
        panel[i].setBackground(col1);
        panel[i].addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
            panel[i].setBackground(col3);
            }
        });

    }

    for(int y = 0; y < bombs; y++) {
        panel[randomNum()].setBackground(col2);
    }

}

panel1是所有面板所在的整体容器。

使用此代码,我收到错误消息,即本地变量i必须是final才能从内部类引用它。 那我该怎么做?

不需要阵列。 该事件包含对生成事件的组件的引用:

public void mouseClicked(MouseEvent e) 
{
    Component panel = e.getComponent();
    panel.setBackground(col3);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM