为什么会报错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()的功能。如果你知道的话,能不能顺道告诉我呢