线程“main”中的异常

时间:2011-12-30 23:56:46

标签: java

  

线程“main”中的异常java.lang.Error:未解决的编译问题:       令牌“]”上的语法错误,无效(

这是我收到的错误消息。 这是我的代码:

import java.awt.*;
import java.util.Random;
import java.awt.event.*;
import javax.swing.*;  //notice javax
public class Frame1 extends JFrame
{
  JPanel pane = new JPanel();
  Frame1() // the frame constructor method
  {
    super("Harry's Random Number Generator"); setBounds(100,100,300,100);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container con = this.getContentPane(); // inherit main frame
    con.add(pane); // add the panel to frame
    // customize panel here
    // pane.add(someWidget);
    setVisible(true); // display this frame
  }
  public static void main(String args[]) {new Frame1();}
    Random dice = new Random();
    int number;{

    for(int counter=1; counter<10;counter++){
        number = 1+dice.nextInt(1000);
        System.out.println(number + " ");
    }

    }

}

2 个答案:

答案 0 :(得分:2)

你的代码完全搞砸了。

这些行:

public static void main(String args[]) {new Frame1();}
    Random dice = new Random();

开始和结束main方法,然后定义成员变量dice

这些行:

int number;{

for(int counter=1; counter<10;counter++){
    number = 1+dice.nextInt(1000);
    System.out.println(number + " ");
}

}

然后继续定义另一个成员变量number,然后定义实例初始值设定项 { ... }

首先正确格式化代码。从语法上讲,我会这样写:

import java.awt.Container;

public class Frame1 extends JFrame {

    JPanel pane = new JPanel();

    Frame1() { // the frame constructor method
        super("Harry's Random Number Generator");
        setBounds(100,100,300,100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container con = this.getContentPane(); // inherit main frame
        con.add(pane); // add the panel to frame
        // customize panel here
        // pane.add(someWidget);
        setVisible(true); // display this frame
    }

    public static void main(String args[]) {
        new Frame1();

        Random dice = new Random();
        int number;

        for(int counter=1; counter<10;counter++){
            number = 1+dice.nextInt(1000);
            System.out.println(number + " ");
        }
    }
}

(实际编译并运行“正常”。)

答案 1 :(得分:0)

你的主要方法是一行:new Frame1();然后你关闭main()并出现一些新代码:Random dice = ...但是没有封装在方法中。