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

我几天前开始编写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); } } } 

让您的构造函数与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在Event Dispatch Thread上执行Swing操作。

你的问题在于这3行:

 public class Panel_Test extends JFrame{ public static void main(String[] args){ public Board(){ 

main方法也不应该包含构造函数,这需要在方法之外分离。 我还建议使用Board构造函数的Panel_Test类和带有main方法的Panel_Test类。 试试这个:

 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... } } 

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

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

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

推荐阅读: Java教程:为您的类提供构造函数

你的Board()实际上是一个构造函数,不能在方法中创建。 每个类都有一个构造函数。 如果未编码,则为您提供默认的无参数构造函数。 您面临的主要问题是您正在一个名为Panel_Test的类中创建一个名为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 } } 

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