为什么我收到错误。在eclipse中,它表示构造函数调用应该是第一行。这是第一线。或者你不能扩展Main?
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Main extends JFrame{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//JLabel testLabel1 = new JLabel();
public Main(){
super("title bar");
}
}
}
答案 0 :(得分:5)
您的Main
构造函数应位于main
方法的外。像这样:
public class Main extends JFrame {
public Main() {
super("title bar");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//JLabel testLabel1 = new JLabel();
}
}
答案 1 :(得分:0)
构造函数应该在public static void main(String[] args) {
之外
它是一个函数,你不能在函数内部有一个构造函数。
答案 2 :(得分:0)
您正试图在静态方法中定义构造函数(public Main
)。这在Java中无效。
你可能意味着更像这样的东西:
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Main extends JFrame{
/**
* @param args
*/
public static void main(String[] args) {
}
// The constructor isn't *inside* `main` anymore:
public Main(){
super("title bar");
}
}
答案 3 :(得分:0)
有多个错误。
第一个错误是您在方法中定义类的构造函数。这是非法的,导致编译器抱怨它期望new
关键字而不是public
。
其次,必须在第一行调用super
类方法。但是,由于之前的错误,编译器现在感到困惑,它已经报告了。
您可能还希望改进类命名约定。很容易在main(String args[]
方法(它是代码的入口点),Main
类及其构造函数Main()
(由编译器生成)之间混淆。