2013-04-06 61 views
0

下面是我在Eclipse上使用的代码我不明白我出错的地方。我是一名Java初学者,所以我对这个主题不太熟悉。任何帮助将非常感激。错误总是eccors,当我尝试,看看我已经走了多远,通过运行该程序,缓解计算机术语请我新来这个哈哈。“Main Method not Public” - 尝试在Eclipse上运行程序时出现错误消息

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 
    } 

} 
+8

我希望所有的错误信息是清晰和具体。 – NPE 2013-04-06 15:12:45

+0

@NPE - 你可能在这里有点太微妙:-) – 2013-04-06 15:23:20

回答

5

那么,你的主要方法必须公开:

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

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

或破产Oracle tutorial

在Java编程语言中,每个应用程序都必须包含一个main方法,其特征是:public static void main(String[] args)

+0

谢谢你的帮助,但现在我没有添加的面板出现在程序 – 2013-04-06 15:13:25

+0

然后我建议你按照一些摆动教程。 – Magnilex 2013-04-06 15:14:25

+2

@tundemaster这是另一回事。我建议你[接受答案](http://meta.stackexchange.com/a/65088/155831),对Swing进行一些研究。如果您仍然有问题,您可以发布另一个问题 – Reimeus 2013-04-06 15:18:12

1

需要声明的主要方法为公共静态无效。这是reaseon:

  • 公共 - 主要方法是通过JVM调用运行,这是 项目的范围,因此访问符有外面的方法是 公众可以从任何地方允许应用程序的外部调用
  • static - 当JVM创建的是主方法调用时,不存在调用该类的 对象,因此它必须具有 静态方法才能允许从类中调用。
  • 无效 - Java是平台独立的语言,因此,如果将 返回一些值,则该值可能意味着不同的 平台不同,因此与C则不能假设返回值 操作系统的行为。

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

相关问题