JComboBox 没有得到我的值

JComboBox doesn't get my values

我的 JComboBox 有问题。

描述: 我通过在文本字段中写入我的文件名来创建一个新文件。通过单击一个按钮,我创建了一个具有此值的文件并将其添加到我的 JComboBox 中,但我只看到对象值,例如“[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());



        }
    });

谢谢你的帮助 问候空白

遍历它:

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

您要添加一个数组 Files 作为组合框的单个元素(这就是 addItem 所做的,添加一个(单个)项目)

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

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

这有一个很好的副作用,即先删除所有以前的元素

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

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