Java JComboBox不';我得不到我的价值观

Java JComboBox不';我得不到我的价值观,java,swing,jcombobox,Java,Swing,Jcombobox,我的JComboBox有问题 说明: 我通过在文本字段中写入文件名来创建一个新文件。通过单击按钮,我创建了一个具有此值的文件,并将其添加到我的JComboBox中,但我只看到对象值,例如“[Ljava.io.file;@1b1428d”,这就是问题所在。用户甚至不知道此值的含义,所以我需要我的文件名。我搜索了很长时间,是的,toString()不起作用:D 我的代码如下所示:JComboBox TxtDoc=newjcombobox(create()); 公共文件[]创建(){ FileSyst

我的JComboBox有问题

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

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

公共文件[]创建(){
FileSystemView SYSTEM=FileSystemView.getFileSystemView();
字符串user=System.getProperty(“user.home”)+“\\notes”;
File userdir=新文件(用户);
File[]fileList=SYSTEM.getFiles(userdir,true);
返回文件列表;
}
newText.addMouseListener(新的MouseAdapter(){
@抑制警告(“未选中”)
公共void mouseClicked(MouseEvent事件){
新文档()

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

您要添加一个数组
文件
s作为组合框的单个元素(就是这样,添加一个(单个)项)

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

TxtDoc.setModel(new DefaultComboBoxModel(create());
这有一个很好的副作用,就是先删除所有前面的元素

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


你可能想考虑提供一个定制的单元格渲染来渲染文件的名称。请参阅并了解更多细节。

我想我只需要更新我的FielSycMeVIEW,这样我就可以得到我的新文件。我会用COMBOBOX模式来试试。谢谢你的回答。是的,我也尝试过,但是我相信我的问题是我的文件。Systemview没有得到更新(新文件),但我很高兴你的回答这是胡说八道,我发现我的逻辑错误你的权利你帮了我很多谢谢
TxtDoc.setModel(new DefaultComboBoxModel(create());