我几天前开始编写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);
}
}
}
答案 0 :(得分:3)
你的问题在于这3行:
public class Panel_Test extends JFrame{
public static void main(String[] args){
public Board(){
main
方法也不应该包含构造函数,这需要在方法之外分离。我还建议您使用Board
构造函数构建Board
类,并在其中使用Panel_Test
类main
类。试试这个:
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时使用过。