2012-08-07 39 views
0

你好我執行我的PROGRAMM一個MouseListener的作用我想提出一個顏色的JPanel時,面板上改變其顏色,而是一行代碼用戶點擊給出一些錯誤,如在創建一個類你e代碼,但é已經被聲明爲事件類的一個實例plz幫助我在這裏是我的代碼below.error是在這一行「panel.addMouseListener(E);」。錯誤在Java代碼中執行的MouseListener

'import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class randomcolor extends JFrame{ 
    JPanel panel; 
    public randomcolor(){ 
     panel=new JPanel(); 
     panel.setBackground(rancolor()); 
     add(panel); 
    } 

    event e =new event(); 
    panel.addMouseListener(e); 

    public Color rancolor(){ 
     int r= (int) (Math.random()*256); 
     int g= (int) (Math.random()*256); 
     int b= (int) (Math.random()*256); 
     return (new Color(r,g,b)); 
    } 

    public class event implements MouseListener{ 
     public void mouseClicked(MouseEvent e) { 
      panel.setBackground(rancolor()); 
     } 
     public void mousePressed(MouseEvent e) { 
     } 
     public void mouseReleased(MouseEvent e) { 
     } 
     public void mouseEntered(MouseEvent e) { 
     } 
     public void mouseExited(MouseEvent e) { 
     } 
    } 

    public static void main (String args[]){ 
     randomcolor gui=new randomcolor(); 
     gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     gui.setVisible(true); 
     gui.setSize(300, 300); 
     gui.setTitle("color panel"); 
    } 
} 

回答

2

event e = new event()中大寫事件。它應該可能是Event e = new Event()代碼中的格式看起來很奇怪;這可能也會隱藏其他格式錯誤

既然代碼格式正確,我可以看到另一個問題:你可能是指有

Event e = new Event(); 
panel.addMouseListener(e); 

您的構造函數中,而不是是右花括號後面。

0

移動語句panel.addMouseListener(e);到構造randomcolor()。這將解決問題。