【问题标题】:Error in JColorChooserJColorChooser 中的错误
【发布时间】:2014-06-10 03:04:02
【问题描述】:

我使用 JColorChooser 编写了一个简单的代码,以允许用户从面板中选择颜色。但是我一直遇到一个错误。 GUI 代码有一个按钮,当用户单击它时,该按钮执行打开颜色面板的操作。请帮我纠正错误!

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();  
    }  
}  

【问题讨论】:

    标签: java


    【解决方案1】:

    您将this 作为组件参数传递,在您的情况下this 代表ActionListener,所以试试这个:

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

    【讨论】:

    • 传递 JFrame f 可能会更好,而不是 null。
    • 我们为什么要传递 JFrame 对象?此外,通过传递组件“f”更改代码后,编译但在执行期间出错。错误是:无法找到或加载主类 Colour。
    • 其中传递一个组件代表颜色对话框的父级,而关于您当前的错误,这是完全不同的问题。
    猜你喜欢
    • 2019-08-31
    • 2012-02-15
    • 2013-12-03
    • 2014-12-05
    • 2013-02-20
    • 1970-01-01
    • 2019-06-27
    • 2012-03-18
    • 2011-12-03
    相关资源
    最近更新 更多