chr*_*ite 0 java swing compiler-errors jtextfield
我正在尝试创建一个大型的JTextField对象数组,由于某种原因,我的代码将无法编译.我现在已经玩了很久了,我找不到编译器生气的好理由; 这是我的代码只有一个长度为2的数组:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class SUDOKU_temp extends JApplet
{
//declare fields
public JTextField[] fields = new JTextField[2];
fields[0] = new JTextField();
fields[1] = new JTextField();
//other stuff happens down here that the compiler is ok with
}
Run Code Online (Sandbox Code Playgroud)
如果我只运行长度为1的数组的代码,我会得到完全相同的错误,它们是:
linux63:~demo$ ./compile
SUDOKU_temp.java:11: ']' expected
fields[0] = new JTextField();
^
SUDOKU_temp.java:11: ';' expected
fields[0] = new JTextField();
^
SUDOKU_temp.java:11: illegal start of type
fields[0] = new JTextField();
^
SUDOKU_temp.java:11: <identifier> expected
fields[0] = new JTextField();
^
SUDOKU_temp.java:11: ';' expected
fields[0] = new JTextField();
^
SUDOKU_temp.java:11: illegal start of type
fields[0] = new JTextField();
^
SUDOKU_temp.java:11: <identifier> expected
fields[0] = new JTextField();
^
Run Code Online (Sandbox Code Playgroud)
我觉得这是编译器的问题,而不是代码,任何有关如何调试它的帮助将不胜感激.提前致谢!!
非声明性语句不能位于类块中.你需要放置
fields[0] = new JTextField();
fields[1] = new JTextField();
Run Code Online (Sandbox Code Playgroud)
在构造函数,方法或静态初始化程序块中.对于这个applet,你可以使用:
public void init() {
for (int i=0; i < fields.length; i++ ) {
fields[i] = new JTextField();
}
}
Run Code Online (Sandbox Code Playgroud)
您不能在方法之外运行代码(除非它是声明).您需要在某些方法或数组文字中初始化它们.
数组文字:
public JTextField[] fields ={ new JTextField(),new JTextField()};
Run Code Online (Sandbox Code Playgroud)
在一个方法中:
public JTextField[] fields=new JTextField[2];
public void method(){
fields[0]=new JTextField();
fields[1]=new JTextField();
}
Run Code Online (Sandbox Code Playgroud)