我正在爲學校做作業,但我遇到了一個問題:P。 我得到這個代碼:爲什麼JPanel不會改變顏色並保持這種狀態?
public void mouseEntered(MouseEvent e) {
MyPanel b = (MyPanel)e.getSource();
System.out.println("ID: "+b.getId()+"");
b.setColor(Color.blue);
}
在MyPanel對象我:
public void setColor(Color kleur) {
if(this.getBackground()==Color.white) {
this.setBackground(kleur);
repaint();
}
}
當我進入面板與我的鼠標色彩閃爍,我進入。但我希望它保持顏色,這樣我就可以在500 Jpanels的Jform中繪製軌跡(我已將它們添加到ArrayList,但此部分工作正常)
我在做什麼錯?
你能提供全'MouseListener'代碼?另外,是你確定背景設置爲白色之前?你可以通過刪除你的'MyPanel#setColor()'方法中的if語句來試試。 – brimborium
我相信你應該在paint()方法中重新着色JPanel。 –
在paint()方法中不需要重新着色JPanel,設置JPanel的背景工作正常,沒有必要寫一個自定義的paint()方法,會見除非你絕對需要它。 –