JList与JPanel与滚动条的问题

warmer 发布于 2013/11/29 20:14
阅读 1K+
收藏 0
为什么会报错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) {
}
}




加载中
0
狮子的魂
狮子的魂

这逻辑写的:

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;
}



吧。。
w
warmer
哈,抱歉,其实这个是因为传入的menu未new;;现在问题是,该怎麽设置JPanel的大小不一;因为我发觉,改变一个JPanel的大小后,其余的跟着改变;想要对panel实现frame.pack()的功能。如果你知道的话,能不能顺道告诉我呢
返回顶部
顶部