【问题标题】:populate check boxes dynamically from text in java从java中的文本动态填充复选框
【发布时间】: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


【解决方案1】:

对于任何感兴趣的人: 我在一个只有一个按钮的小程序中尝试了@TerryStorm 的建议,每次单击按钮时都会添加一个框

 private void addCBActionPerformed(java.awt.event.ActionEvent evt) {                                      

    JCheckBox box=new JCheckBox("add");
    box.setVisible(true);
     jPanel1.add(box);
    jPanel1.updateUI();


}   

【讨论】:

  • 正如我已经说过的:updateUI() 不做,你可能期望什么!它不是用于重绘! (另外:如果我的评论有帮助,请至少投赞成票)
  • @Terry 我认为不可能发表评论,写下你的答案,我会投赞成票 :) .. 关于重绘,它对我不起作用,但revalidate(),感谢您的帮助: D
猜你喜欢
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多