JComboBox没有得到我的值

时间:2015-03-05 10:32:51

标签: java swing jcombobox

我的JComboBox有问题。

说明 我通过在Textfield中写入我的文件名来创建一个新文件。通过单击按钮我创建一个具有此值的文件并将其添加到我的JComboBox中,但我只看到Object值,例如“[Ljava.io.FIle; @ 1b1428d”,这就是问题所在。用户甚至不知道这个值意味着什么所以我需要我的文件名。我搜索了很长时间,是toString()不起作用:D

我的代码如下所示:JComboBox TxtDoc = new JComboBox(create());

public File[] create(){
    FileSystemView SYSTEM = FileSystemView.getFileSystemView();
    String user = System.getProperty("user.home")+"\\notes";
    File userdir = new File(user);
    File[] fileList = SYSTEM.getFiles(userdir, true);
    return fileList;


}
newTxt.addMouseListener(new MouseAdapter() {

        @SuppressWarnings("unchecked")
        public void mouseClicked(MouseEvent event){
            new Documents().createTxtDoc(); // <-- this just open a new frame with my textfield and a button.
            TxtDoc.addItem(create());



        }
    });

谢谢你的帮助 问候空白

2 个答案:

答案 0 :(得分:1)

迭代它:

    for (File f : fileList) {
      TxtDoc.addItem(f);
    }

答案 1 :(得分:1)

您将数组File添加为组合框的单个元素(这是addItem所做的,添加A(单个)项目)

有几种方法可以做到这一点,一种可能只是重置组合框的模型......

TxtDoc.setModel(new DefaultComboBoxModel(create());

这具有首先删除所有先前元素的良好副作用

话虽如此,你可能不喜欢结果......

您可能需要考虑提供自定义单元格渲染以仅渲染文件的名称。有关详细信息,请参阅How to Use Combo BoxesConcepts: Editors and Renderers