你写了个私有的语句块!
如果你把括号去了就有
panel.setOpaque(false);
panel.add(new JButton("Hello"));
setContentPane(panel);
上面三句只能出现在方法或语句块里面(类的成员有属性,方法,语句块,这三句都不符合)
不信你可以把前面的括号下移到
panel.setOpaque(false);
这句的前面试试
所以就...
super.paintComponent(g);
}
};
这里括号后面怎么有个分号?
看起来不象内部尼名类。怎么加个分号呢?
问题会不会出在这里!
JPanel panel = new JPanel() { 还有你这里放个大括号是什么意思呢!!~` 这是去new对象。怎么弄个大括号呢!
在一个类中,一般只允许出现变量、方法、或者内部类等的声明。
仔细看你标注的两个花括号之间的内容,假如去掉花括号,中间那些就只是一些零散的语句,这些语句是不允许在类的声明中直接出现的,而只允许在方法内部出现。
而当你把两个花括号加上之后,它们是类的一个初始化块,在初始化块中当然可以写这些语句了。
方法调用之类的必须放在语句块里面,比如最常见的就是放在方法里面
但是你加了2个括号,相当于写了一个初始化语句块,也相当于一个没有名字的方法,它会自动执行的