报错的内容如下:
Exception in thread "main" java.lang.NullPointerException
at lzq.FlowLayout.<init>(FlowLayout.java:17)
at lzq.FlowLayout.main(FlowLayout.java:29)
源代码如下(包的应用在此不一 一列出,简化):
public class FlowLayout extends JFrame{
public JFrame jf1;
public JButton add,update,delete;
public FlowLayout() {
add = new JButton("增加");
jf1.setVisible(true);//报错出现的第一行
jf1.setSize(400,400);
jf1.setTitle("Flow定位");
jf1.add(add);
}
public static void main(String[] args) {
FlowLayout jbt = new FlowLayout();//报错出现的第二行
}
}
代码看似没有一丁点错误,可是为什么会报错呢?
在定义了一个JFrame jf1 ; 在这个地方定义的是一个对象,而既然是对象我们没有对他进行分配空间(没有new)又怎么去使用呢?
所以修改只需要对JFrame jf1进行初始化即可:如下:
public class FlowLayout extends JFrame{
public JFrame jf;
JFrame jf1 = new JFrame();//在此处对jf初始化
public JButton add,update,delete;
public FlowLayout() {
add = new JButton("增加");
jf1.setVisible(true);
jf1.setSize(400,400);
jf1.setTitle("Flow定位");
jf1.add(add);
}
public static void main(String[] args) {
FlowLayout jbt = new FlowLayout();
}
}