Java 摆动用JList填充JScrollPane
我正在做一个窗口应用程序。我需要创建一个JScrollPane,然后用字符串[]填充它。问题是我需要刷新它 当我启动应用程序时,我想要一个空的JScrollPane,当我按下任何按钮时,该按钮将刷新JScrollPane 我有所有的代码,我只需要刷新内容:Java 摆动用JList填充JScrollPane,java,swing,jframe,jscrollpane,jlist,Java,Swing,Jframe,Jscrollpane,Jlist,我正在做一个窗口应用程序。我需要创建一个JScrollPane,然后用字符串[]填充它。问题是我需要刷新它 当我启动应用程序时,我想要一个空的JScrollPane,当我按下任何按钮时,该按钮将刷新JScrollPane 我有所有的代码,我只需要刷新内容: // Empty JScrollPane scrollPaneDic = new JScrollPane(new JList()); scrollPaneDic.setBounds(225, 75, 200, 170)
// Empty JScrollPane
scrollPaneDic = new JScrollPane(new JList());
scrollPaneDic.setBounds(225, 75, 200, 170);
// Layout
frame.getContentPane().setLayout(null);
frame.getContentPane().add(lblPalabrasDiccionario);
frame.getContentPane().add(scrollPaneDic);
String[] newContent = (method generate and return the new array);
listDic = new JList(newContent);
scrollPaneDic = new JScrollPane(listDic);
在按钮actionListener中,我必须刷新内容:
// Empty JScrollPane
scrollPaneDic = new JScrollPane(new JList());
scrollPaneDic.setBounds(225, 75, 200, 170);
// Layout
frame.getContentPane().setLayout(null);
frame.getContentPane().add(lblPalabrasDiccionario);
frame.getContentPane().add(scrollPaneDic);
String[] newContent = (method generate and return the new array);
listDic = new JList(newContent);
scrollPaneDic = new JScrollPane(listDic);
重要:scrollPaneDic和listDic是全球性的
感谢更改变量的值不会以任何方式影响组件的状态;必须调用组件方法。在此之前,您的框架无法知道您创建了一个新的JScrollPane 实际上,您不应该创建新的JScrollPane或新的JList。相反,您应该更新现有的JList:
JList listDic = (JList) scrollPaneDic.getViewport().getView();
listDic.setListData(newContent);
另外,强烈建议不要使用null布局,尤其是对于JScrollPane。在运行应用程序之前,尝试调整窗口的大小,或者尝试更改系统字体的大小,您将看到原因。并不是每个用户的系统都像你的。看看谢谢。这就是我需要的。