“主要方法不公开” - 尝试在Eclipse上运行程序时出现错误消息

时间:2013-04-06 15:08:21

标签: java class main

这是我在Eclipse上使用的代码我不明白我哪里出错了。我是Java初学者,所以我不太熟悉这个主题。任何帮助将非常感激。当我试着通过运行程序看到我走了多远时,错误始终存在,请轻松使用计算机术语,请大家对此我不熟悉。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.BorderLayout;

public class CBombRombot extends JFrame implements ActionListener, ChangeListener {

    private JPanel panel;
    private JPanel bottompanel;
    private JPanel rightpanel;

    private static void main(String[] args) {
        CBombRombot frame = new CBombRombot();
        frame.setTitle("CBombRobot Application");
        frame.setSize(875, 550);
        frame.show();
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
    }

    private void createGUI() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        Container window = getContentPane();
        window.setLayout(new BorderLayout());

        panel = new JPanel();
        panel.setPreferredSize(new Dimension(650, 450));
        panel.setBackground(Color.white);
        window.add(panel);

        rightpanel = new JPanel();
        rightpanel.setPreferredSize(new Dimension(200, 180));
        rightpanel.setBackground(Color.lightGray);
        window.add(rightpanel, BorderLayout.EAST);

        bottompanel = new JPanel();
        bottompanel.setPreferredSize(new Dimension(400, 50));
        bottompanel.setBackground(Color.lightGray);
        window.add(bottompanel, BorderLayout.SOUTH);
    }

    @Override
    public void stateChanged(ChangeEvent arg0) {
        // TODO Auto-generated method stub
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
    }

}

2 个答案:

答案 0 :(得分:5)

嗯,你的主要方法需要公开:

public static void main(String[] args)

看看那里的一些教程,例如this

  

在Java语言中,当您使用Java解释器执行类时,运行时系统首先调用类的main()方法。然后main()方法调用运行应用程序所需的所有其他方法。

或官方Oracle tutorial

  

在Java编程语言中,每个应用程序都必须包含一个签名为public static void main(String[] args)

的main方法

答案 1 :(得分:1)

您需要将main方法声明为public static void。这是reaseon:

  • Public - 由JVM调用main方法来运行方法 因此,在项目范围之外,访问说明符必须是 公众允许来自申请之外的任何地方的电话
  • static - 当JVM调用main方法时,没有 因为它必须具有被调用的类所存在的对象 允许从类调用的静态方法。
  • void - Java是平台独立语言,因此如果愿意的话 返回一些值然后该值可能意味着不同的不同 平台与C不同,它不能假设返回值的行为 到操作系统。

参考:Why main() in java is public static void main