2014-06-09 47 views
0

我已經使用JColorChooser編寫了一個簡單的代碼,允許用戶從面板中選擇顏色。但是我得到了一個錯誤。 GUI代碼具有一個按鈕,當用戶點擊它時,該按鈕執行打開彩色面板的動作。請幫我糾正錯誤!JColorChooser中的錯誤

import java.awt.event.*;  
import java.awt.*; 
import javax.swing.*; 
class Colour1 implements ActionListener 
{ 
JFrame f; 
JPanel p; JButton b; 
    Colour1() 
    { 
    f=new JFrame(); 
p=new JPanel(); 
    b=new JButton("choose"); 
    } 
    void configure() 
    { 
    f.add(p); 
    f.setSize(200,200); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    p.add(b);  
    b.addActionListener(this);  
    f.setVisible(true);  
    } 
    public void actionPerformed(ActionEvent ae) 
    {Color initialcolor=Color.RED;  
Color color=JColorChooser.showDialog(this,"Select a color",initialcolor); //ERROR found at this statement. 
p.setBackground(color);  

    } 
    public static void main(String args[]) 
    { 
    Colour1 c=new Colour1(); 
    c.configure(); 
    } 
} 

回答

1

你逝去的this作爲組件參數,而你的情況this代表ActionListener,那麼試試這個:

Color color = JColorChooser.showDialog(f, "Select a color", 
      initialcolor); 
+0

它可能是更好的傳遞,而不是空的JFrame的樓。 –

+0

@CostisAivalis感謝提示 – Salah

+0

爲什麼我們要傳遞JFrame對象?此外,在通過傳遞組件「f」編譯來更改代碼之後,但在執行期間發生錯誤。錯誤是:無法找到或加載主類Color。 –