[英]Why am I getting a NullPointerException and no display the component i added?
在下面,您会找到我收到的错误消息。 输出仅显示没有内容的JFrame
。
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1043)
at java.awt.Container.add(Container.java:363)
at gui.<init>(gui.java:37)
at gui.main(gui.java:15)
Java Result: 1
代码如下:
import javax.swing.*;
import java.awt.*;
public class gui extends JFrame {
JPanel p1;
JTextField tf1,tf2,tf3,tf4;
JLabel lbl1,lbl2,lbl3,lbl5,lbl6,lbl7,lbl8,lbl9,lbl10;
JTextArea txtMessage;
JButton b1,b2,b3,b4,b5;
public static void main(String [] args) {
gui f = new gui();
f.setTitle("RSA.");
f.setVisible(true);
f.setSize(700,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public gui() {
lbl1 = new JLabel("Enter first prime number : ");
lbl2 = new JLabel("Enter second prime number: ");
lbl3 = new JLabel("Enter the message to be send : ");
tf1 = new JTextField(15);
tf2 = new JTextField(15);
txtMessage = new JTextArea("Please enter",5,20);
p1 = new JPanel();
p1.add(lbl1);
p1.add(tf1);
p1.add(lbl2);
p1.add(tf2);
p1.add(lbl3);
p1.add(txtMessage);
p1.setLayout(new GridLayout(3,2));
p1.add(lbl1);
p1.add(tf1);
p1.add(lbl2);
p1.add(tf2);
p1.add(lbl3);
p1.add(txtMessage);
}
}
感谢为我提供解决方案的人。谢谢编辑后,输出如下所示:
lbl3
永远不会设置为null
以外的null
,而lbl2
设置两次:
lbl2=new JLabel("Enter second prime number: ");
lbl2=new JLabel("Enter the message to be send : ");
替换为
lbl2=new JLabel("Enter second prime number: ");
lbl3=new JLabel("Enter the message to be send : ");
您没有在gui
的构造函数中初始化lbl3
。 我猜这是一个错字-您有两行初始化lbl2
:
lbl2=new JLabel("Enter second prime number: ");
lbl2=new JLabel("Enter the message to be send : ");
只需将第二个更改为lbl3
,就可以了:
lbl2=new JLabel("Enter second prime number: ");
lbl3=new JLabel("Enter the message to be send : "); // here
您需要在构造函数中添加以下行:
this.add(p1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.