0

我有这个代码。Eclipse 告诉我语法是正确的,但是当我运行程序时,它给了我这个错误:

线程“main”中的异常 java.lang.NoSuchMethodError: main

怎么了?

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main extends JFrame {

    private static final long serialVersionUID = 1L;
    public void main(String[] args){
        JFrame Main = new JFrame("TEST");
        Main.setSize(600, 600);
        Main.setLocationRelativeTo(null);
        Main.setVisible(true);
        Main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Adding JPanel     
        JPanel panel = new JPanel();
        Main.add(panel);
//JPanel settings
        panel.setLayout(null);
        panel.setBackground(Color.GREEN);
//Adding JButton
        JButton button = new JButton("Button 1");
        JButton button2 = new JButton("Button2");
        panel.add(button);
        panel.add(button2);   
//Button action
        button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
        JPanel panel = new JPanel();
        JPanel panel2 = new JPanel();
        Main.this.getContentPane().remove(panel);
        Main.this.getContentPane().add(panel2);
        Main.this.getContentPane().validate();      
    }
});

//JButton settings
        button.setBounds(70, 160, 200, 200);
        button2.setBounds(320, 160, 200, 200);  
    }
}
4

7 回答 7

4

你的主要方法不是 static,你应该做到static检查这个看看为什么

public static void main(String [] args)
于 2013-07-22T09:20:19.783 回答
2

你的主要方法应该是static

  public  static  void main(String[] args){
  ----

}

看看为什么?为什么Java main 方法是静态的?

于 2013-07-22T09:21:51.727 回答
1

该类需要一个带有以下签名的方法:

public static void main(String[])
于 2013-07-22T09:20:41.043 回答
1

您必须使您的主要方法静态:

public static void main(String[] args) {

}
于 2013-07-22T09:20:58.490 回答
1
public static void main(String[] args)

代替

public void main(String[] args)

public表示该方法是可见的,并且可以从其他类型的其他对象中调用。其他替代方案是私有的、受保护的、包的和包私有的。有关更多详细信息,请参见此处。

static意味着该方法与类相关联,而不是与该类的特定实例(对象)相关联。这意味着您可以在不创建类的对象的情况下调用静态方法。

void表示该方法没有返回值。如果该方法返回一个 int,您将编写 int 而不是 void。

这三者的组合最常见于大多数教程将包含的主要方法。

于 2013-07-22T09:21:03.333 回答
0

您的 main 方法必须是静态的(即类绑定而不是实例绑定),因为在启动您的应用程序时,没有可以调用您的类的 main 方法的类实例。

于 2013-07-22T09:22:20.107 回答
0

该类需要一个具有如下签名的方法:

public static void main(String[])
于 2013-07-22T09:27:10.343 回答