摇摆。用 JList 填充 JScrollPane
Swing. Fill JScrollPane with JList
我正在做一个 window 应用程序。我需要创建一个 JScrollPane,然后用 String[] 填充它。问题是我需要刷新它。
我想要一个空的 JScrollPane,当我启动应用程序时,当我按下任何按钮时,该按钮将刷新 JScrollPane。
代码我都有,只需要刷新一下内容:
// 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);
在按钮 actionListener 中,我必须刷新内容:
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);
此外,强烈建议不要使用空布局,尤其是对于 JScrollPane。尝试调整 window 的大小,或者在 运行 应用程序之前尝试更改系统字体的大小,您会明白原因的。并非每个用户的系统都像您的系统。
我正在做一个 window 应用程序。我需要创建一个 JScrollPane,然后用 String[] 填充它。问题是我需要刷新它。
我想要一个空的 JScrollPane,当我启动应用程序时,当我按下任何按钮时,该按钮将刷新 JScrollPane。
代码我都有,只需要刷新一下内容:
// 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);
在按钮 actionListener 中,我必须刷新内容:
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);
此外,强烈建议不要使用空布局,尤其是对于 JScrollPane。尝试调整 window 的大小,或者在 运行 应用程序之前尝试更改系统字体的大小,您会明白原因的。并非每个用户的系统都像您的系统。