开发者社区> 问答> 正文

JList与JPanel与滚动条的问题?报错

为什么会报错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) {
}
}




展开
收起
爱吃鱼的程序员 2020-06-22 14:09:38 312 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    这逻辑写的:

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



    吧。。哈,抱歉,其实这个是因为传入的menu未new;;现在问题是,该怎麽设置JPanel的大小不一;因为我发觉,改变一个JPanel的大小后,其余的跟着改变;想要对panel实现frame.pack()的功能。如果你知道的话,能不能顺道告诉我呢
    2020-06-22 14:09:56
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载