- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 JFileChooser
作为导出功能的一部分。我希望用户能够从 JFileChooser
的文件查看器中选择文件或在文件名文本框中输入文件名。根据我的阅读,可以使用 getSelectedFile()
方法获取该值,因此我有一些监听器调用 getSelectedFile()
并尝试在之前进行一些检查执行导出。
我遇到的问题是,当我在文件名文本框中手动输入名称时,getSelectedFile()
方法返回 null。更令人困惑的是,getSelectedFile()
方法在三种不同情况下有效:
setSelectedFile()
填充它(用户点击了表格中的一个值,我使用 setSelectedFile()
)我有三个文件过滤器,但无论它们是否启用,都具有相同的行为。
调用getSelectedFile()
的监听器如下:
是否有更好的方法来监听我的 jFileChooser 以获取用户输入?我觉得我错过了一些非常明显的东西......感谢任何帮助!
编辑更多信息...
我在 JSplitPane
中有一个 JFileChooser
组件,它位于 JFrame
中。我没有调用 showOpenDialog
来获取用户的输入。该组件可作为表单的一部分进行访问。
我想做的是在他/她键入时收听用户输入。我有一个“开始导出”按钮,我想在用户在 JFileChooser
组件的文件名文本框中输入有效文件名之前将其保持禁用状态。为实现这一点,我有一个 KeyEvent 监听器,我想用它在用户输入文件名时获取它。
进一步编辑
这是 Action 监听器代码:
jFileChooserExport.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jFileChooserExportActionPerformed(evt);
}
});
我这里还有一个属性更改监听器:
jFileChooserExport.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
jFileChooserExportPropertyChange(evt);
}
});
在 jFileChooserExportPropertyChange 和 jFileChooserExportActionPerformed 中,我试图通过调用 getSelectedFile() 获取用户选择的文件。然而,在这两种情况下,它都保持为空,直到用户执行上述三种方法之一
最佳答案
阅读 How to Use File Choosers 上的 Swing 教程部分.那里的演示代码对我来说工作正常。
关于java - 从 jFileChooser 组件创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4947305/
我是一名优秀的程序员,十分优秀!