为什么会报错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;}版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。