【发布时间】:2014-10-26 13:25:52
【问题描述】:
我正在做一个项目,我必须显示一组记录,然后用户可以选择这些记录中的一个或多个以将它们移动到另一组。
我认为最适合使用的组件是复选框。我的问题是我在读取文件时无法自动将复选框添加到框架中。我添加了一个面板,并添加了复选框,但使用paint或updateUI后它仍然没有出现。 这是我的代码:
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file.getAbsolutePath()), "UTF-8"));
String line = reader.readLine();
String text = "";
while (line != null) {
text += line;
line = reader.readLine();
}
ArrayList<String> records = new ArrayList<String>(Arrays.asList(text.split("")));
for(String rec: records){
resPanal.add(new JCheckBox(rec));
}
resPanal.updateUI();
记录数不是恒定的,所以我需要一种方法来将组件 = 添加到找到的记录数中。 除了复选框之外,我愿意接受其他可以提供帮助的建议
【问题讨论】:
-
所以最初您看到的是复选框,但新添加的复选框并没有出现,对吗?
-
@TerryStorm。不,最初框架是空的,只有一个面板,一旦用户上传了一个文本文件,它应该开始填充复选框。
-
所以您确定您的面板已添加到框架中?
-
是的,我使用 netbeans gui builder,所以我确定我有一个面板。当我运行程序时它就在那里。
-
需要检查的几件事:1)
text.split("")在每个字符后拆分,不知道您是否想要...但可能更像是在每个单词后 (text.split(" "))?! 2)很久以前我最后一次使用swing,但是默认情况下组件不可见吗?在面板或复选框上尝试setVisible(true)?面板是否附加了布局? FlowLayout或类似的东西?或者尝试调用重绘。 UpdateUI 实际上并没有做任何与重绘相关的事情(我认为)
标签: java user-interface checkbox populate