做一个计算器的练习写下如下代码,eclipse在添加MenuBar到最后每行都提示错误,都是这类的错误
Multiple ers at this line
- Syntax error on token "mb", VariableDeclaratorId expected after this 
 token
- Syntax error on token(s), misplaced construct(s)
而当写下主方法把CounterText 中的代码括起来时,错误就消失了,或者不写主方法,仅仅把CounterText 中的代码用一个大括号括起来,错误同样消失,请教各位这是怎么回事呢,这一个大括号起的什么作用呢?import java.awt.Dimension;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;public class CounterText {

JFrame frame = new JFrame("计算器");

JMenuBar mb = new JMenuBar();

JMenu m1 = new JMenu(" File");
JMenu m2 = new JMenu(" Save");

JMenuItem item1 = new JMenuItem("New");
JMenuItem item2 = new JMenuItem("hello");

frame.setJMenuBar(mb);

mb.add(m1);
mb.add(m2);

m1.add(item1);
m1.add(item2);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(new Dimension(200, 300));
frame.setVisible(true);
}

解决方案 »

  1.   


    frame.setJMenuBar(mb);mb.add(m1);
    mb.add(m2);m1.add(item1);
    m1.add(item2);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(new Dimension(200, 300));
    frame.setVisible(true);这些语句只能在方法中,不能直接写在类中,给它加上大括号后成为块代码就行了
      

  2.   

    简单的说,就是在类的声明变量区是不能出现独立的执行语句的。除非放在一对大括号里{}. 这样的一对大括号,叫代码块。(这样没有方法名的代码块,不是很多见)。如下面的程序:
    public class Test
    {
       Object obj;
       Object obj1=new Object();             //声明同时赋值可以。
       //System.out.println("Hello world");  //这句执行语句出现在这里就不对了。
       {
          System.out.println("Hello world");  //出现在这里也可以,此段代码没有方法名,
                                              //是在初始化的时候执行,程序无法调用。
       }
       Test()
       {
          System.out.println("Hello world");  出现在这里就可以。产生对象时执行。
       }
       display()
      {
        System.out.println("Hello world");  出现在这里就可以。 供类的对象调用。
      }
    }
      

  3.   

    不用百思,Java程序设计的时的基本规定。