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);
}
您要添加一个数组 File
s 作为组合框的单个元素(这就是 addItem
所做的,添加一个(单个)项目)
有几种方法可以做到这一点,一种可能是简单地重置组合框的模型...
TxtDoc.setModel(new DefaultComboBoxModel(create());
这有一个很好的副作用,即先删除所有以前的元素
话虽如此,您可能不喜欢结果...
您可能需要考虑提供自定义单元格渲染以仅渲染文件名。有关详细信息,请参阅 How to Use Combo Boxes and Concepts: Editors and Renderers
我的 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);
}
您要添加一个数组 File
s 作为组合框的单个元素(这就是 addItem
所做的,添加一个(单个)项目)
有几种方法可以做到这一点,一种可能是简单地重置组合框的模型...
TxtDoc.setModel(new DefaultComboBoxModel(create());
这有一个很好的副作用,即先删除所有以前的元素
话虽如此,您可能不喜欢结果...
您可能需要考虑提供自定义单元格渲染以仅渲染文件名。有关详细信息,请参阅 How to Use Combo Boxes and Concepts: Editors and Renderers