我将把“Public static void main(String [] args)”放在哪里?

时间:2015-01-06 16:05:21

标签: java

我几天前开始编写java代码。我做了一些成功的程序,但我坚持这一个。 哪里我写“Public static void main(String [] args)”代码我得到一个错误。大多数时候它告诉我“;”是期待。我知道把“;”面对那段代码是错误的。有人能告诉我到底在哪写吗?或者如果可能的话为我修复代码?这是代码:

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

public class Panel_Test extends JFrame{

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

        super("Java Panel");

        setSize(300,300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);

        JPanel a = new JPanel();
        JPanel a2 = new JPanel();
        JButton b = new JButton("Button 1");
        JButton c = new JButton("Button 2");
        JCheckBox cb = new JCheckBox("CB1");
        JCheckBox cb2 = new JCheckBox("CB2");
        a.add(b);
        a.add(c);
        a2.add(cb);
        a2.add(cb2);
        add(a, BorderLayout.SOUTH);
        add(a2, BorderLayout.NORTH);
        }
    }
}

4 个答案:

答案 0 :(得分:3)

你的问题在于这3行:

public class Panel_Test extends JFrame{

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

main方法也不应该包含构造函数,这需要在方法之外分离。我还建议您使用Board构造函数构建Board类,并在其中使用Panel_Testmain类。试试这个:

public class Panel_Test {

    public static void main(String[] args){
        new Board().doSwing();
    }
}

public class Board extends JFrame {

    public Board() {
    }    

    public void doSwing() {
    //Your Swing code here...
    }
}

答案 1 :(得分:1)

你的语法没有任何意义。你有一个名为Board()的方法,似乎在你的main()方法中,这是不可能的。

它进一步没有意义,因为Board()是一个构造函数(注意它以大写字母开头并且没有返回类型),但我在这里看不到Board类。

你需要弄清楚你想要做什么:你应该创建一个Board类吗?如果是这样,那属于另一个文件。你是否已经尝试使用main()方法构建一个Board类?如果是,则使用 new 关键字调用构造函数。

推荐阅读:The Java Tutorials: Providing Constructors for Your Classes

答案 2 :(得分:1)

让您的构造函数与main方法分开,并使其名称与您的类名相同(即public Panel_Test,因为您的类的名称为Panel_Test)。

public class Panel_Test extends JFrame {
    public Panel_Test() {
        // code here
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new Panel_Test();
            }
        });
    }
}

不要忘记使用javax.swing.SwingUtilities在事件调度线程上执行Swing操作。

答案 3 :(得分:0)

您的Board()实际上是一个构造函数,无法在方法中创建。每个类都有一个构造函数。如果未编码,则为您提供默认的无参数构造函数。您面临的主要问题是您在名为Board的类中创建了一个名为Panel_Test的构造函数。

为您提供有关其工作原理的基本示例:

public class Board extends JFrame {

    //your fields

    public Board() {//your constructor

    }

    //your methods

}

public class Test_Panel {

    public static void main(String[] args) {

        Board board = new Board();//calling your Test_Panel class' constructor 

    }

}

如果您不熟悉编程,并希望通过基础知识变得更加扎实,here's这是一个很好的网站,我曾经在我作为程序员学习Java时使用过。