为什么会报错Exception in thread "main" java.lang.NullPointerException;以前也传过JPanel给另一个函数,remove后重新添加组件,没有出错,为什么这次出错了?
代码如下
public class Menu extends Thread{
private static JPanel menu;
private JScrollPane scroll;
private JList jList1 = null;
public Menu(JPanel menu){
this.menu = menu;
}
private JList getJList1(){
if (jList1 == null) {
jList1 = new JList();
DefaultListModel listModel = new DefaultListModel();
listModel.addElement("22222");
listModel.addElement("33333333");
listModel.addElement("8888888888888888888888888888");
listModel.addElement("8888888888");
listModel.addElement("88888888");
listModel.addElement("999999999");
jList1.setModel(listModel);
}
return jList1;
}
private JScrollPane getJScroll(){
if (scroll == null) {
scroll = new JScrollPane();
scroll.setBounds(new Rectangle(142, 96, 128, 68));
scroll.setViewportView(getJList1());
}
return scroll;
}
private JPanel getmenu(){
if (menu == null){
menu.setLayout(null);
menu.add(getJScroll());
}
return menu;
}
@Override
public void run(){
this.getmenu();
}
public static void main(String[] args) {
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这逻辑写的:
privateJPanelgetmenu(){if(menu==null){menu.setLayout(null);menu.add(getJScroll());}returnmenu;}menu都已经等于null了,还去通过menu调用方法,这。。。你是想表达:
privateJPanelgetmenu(){if(menu!=null){menu.setLayout(null);menu.add(getJScroll());}returnmenu;}