Java Swing GUI中的NullPointerException
我在下面的代码中得到一个Java Swing GUI中的NullPointerException,java,swing,nullpointerexception,Java,Swing,Nullpointerexception,我在下面的代码中得到一个NullPointerException。代码的主要目的是在一个类中获取用户的输入,并将其传递给另一个类以构建GridLayout 这是我第一节课的代码 public class A{ int N; JLabel label; JPanel panel; JButton button; JFrame frame; JTextField text; public A(){ frame=new JFra
NullPointerException
。代码的主要目的是在一个类中获取用户的输入,并将其传递给另一个类以构建GridLayout
这是我第一节课的代码
public class A{
int N;
JLabel label;
JPanel panel;
JButton button;
JFrame frame;
JTextField text;
public A(){
frame=new JFrame();
panel=new JPanel();
text=new JTextField(20);
label=new JLabel("Enter the number of states");
button=new JButton("Submit");
panel.add(label);
panel.add(text);
panel.add(button);
frame.add(panel,BorderLayout.CENTER);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
N=Integer.parseInt(text.getText());
B1 page=new B1(N);
page.frame.setVisible(true);
}
});
frame.setSize(320,240);
frame.pack();
frame.setVisible(true);
}
public static void main(String arg[]){
A ab=new A();
}
}
这是我第二节课的代码
public class B1 extends A {
JFrame frame;
JPanel pan;
JButton button;
double transition[][];
JTextField tf[][];
B1(int N){
this.N=N;
frame=new JFrame("Transition matrix");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pan=new JPanel();
pan.setLayout(new GridLayout(N+1,N));
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
tf[i][j]=new JTextField();
pan.add(tf[i][j]);
}
}
button=new JButton("Submit");
pan.add(button);
frame.add(pan);
frame.pack();
}
}
公共类B1扩展了{
JFrame框架;
潘杰潘;
按钮;
双过渡[];
JTextField[][];
B1(内部网络){
这个,N=N;
frame=新JFrame(“转换矩阵”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pan=新的JPanel();
平移设置布局(新网格布局(N+1,N));
对于B1
类的构造函数中的(int i=0;i,您需要new
您的JTextField
数组(tf
),如下所示:
。。。
tf=新的JTextField[N][N];
//代码开始
对于B1
类的构造函数中的(int i=0;i,您需要new
您的JTextField
数组(tf
),如下所示:
。。。
tf=新的JTextField[N][N];
//代码开始
for(int i=0;i打印并读取堆栈跟踪。它准确地告诉您NPE抛出的.java源文件和行号。这应该足以找出您做错了什么。您在使用引用之前未能初始化它。tf[]B1
中的
未初始化请对代码块使用一致的逻辑缩进。打印并读取堆栈跟踪。它会准确地告诉您NPE抛出的.java源文件和行号。这应该足以找出您做错了什么。您在使用引用之前未能初始化它。tf[]B1
中的
未初始化请对代码块使用一致的逻辑缩进。非常感谢!!!这很有帮助。我尝试了GridLayout的所有可能组合,认为这就是问题所在。谢谢!非常感谢!!!这很有帮助。我尝试了GridLayout的所有可能组合我想这就是问题所在。谢谢!
...
tf = new JTextField[N][N];
//code start
for(int i=0; i<N; i++)
{
for(int j=0; j<N; j++)
{
tf[i][j]=new JTextField();
pan.add(tf[i][j]);
}
}
...