获取编译时间错误

时间:2014-07-12 18:43:51

标签: java

我收到以下错误:找不到符号color b=new color(Color.BLACK);

编辑:我正在尝试创建类颜色的实例。

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

    class eventqueue{
    public static void main(String args[]){


    final JFrame frame=new JFrame("PROGRAM");
    final JPanel panel=new JPanel();

    EventQueue.invokeLater(new Runnable(){
        public void run(){

                final JButton black=new JButton("BLACK");
                panel.add(black);
                frame.add(panel);

                color b=new color(Color.BLACK);

                black.addActionListener(b);

                frame.setVisible(true);
                frame.setSize(400,400);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


            class color implements ActionListener{
                public Color c;
                public color(Color bc){
                    c=bc;
                    }
                public void actionPerformed(ActionEvent event){
                    panel.setBackground(c);
                    }
                }
            }
        });

    }
}

3 个答案:

答案 0 :(得分:0)

将变量声明为,

Color b = new Color(Color.BLACK);

答案 1 :(得分:0)

更改您的代码

Color b = new Color(Color.BLACK);

表示Color类。您希望代码中包含哪些内容。

您甚至可以看到Colorcolor的颜色(我的意思是说颜色)差异。小写是变量名,大写是类名。

答案 2 :(得分:0)

由于color是在run()方法中本地声明的类。现在该类必须在使用之前声明。

示例代码:

EventQueue.invokeLater(new Runnable() {
    public void run() {
        ...

        // MOVE it HERE
        class color implements ActionListener {
            public Color c;

            public color(Color bc) {
                c = bc;
            }

            public void actionPerformed(ActionEvent event) {
                panel.setBackground(c);
            }
        }

        // Now use it HERE
        color b = new color(Color.BLACK);
        black.addActionListener(b);
        ...
    }

});

注意:关注Java Naming convention