做一个计算器的练习写下如下代码,eclipse在添加MenuBar到最后每行都提示错误,都是这类的错误
Multiple markers 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);
}
------解决方案--------------------
- Java code
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);
------解决方案--------------------
简单的说,就是在类的声明变量区是不能出现独立的执行语句的。除非放在一对大括号里{}. 这样的一对大括号,叫代码块。(这样没有方法名的代码块,不是很多见)。
如下面的程序:
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"); 出现在这里就可以。 供类的对象调用。
}
}