为什么会报错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) { } }
这逻辑写的:
private JPanel getmenu(){ if (menu == null){ menu.setLayout(null); menu.add(getJScroll()); } return menu; }menu都已经等于null了, 还去通过menu调用方法,这。。。 你是想表达:
private JPanel getmenu(){ if (menu != null){ menu.setLayout(null); menu.add(getJScroll()); } return menu; }
吧。。######哈,抱歉,其实这个是因为传入的menu未new;;现在问题是,该怎麽设置JPanel的大小不一;因为我发觉,改变一个JPanel的大小后,其余的跟着改变;想要对panel实现frame.pack()的功能。如果你知道的话,能不能顺道告诉我呢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。