簡體   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