gpt4 book ai didi

java - 从 jFileChooser 组件创建文件

转载 作者:搜寻专家 更新时间:2023-11-01 03:29:15 25 4
gpt4 key购买 nike

我正在使用 JFileChooser 作为导出功能的一部分。我希望用户能够从 JFileChooser 的文件查看器中选择文件或在文件名文本框中输入文件名。根据我的阅读,可以使用 getSelectedFile() 方法获取该值,因此我有一些监听器调用 getSelectedFile() 并尝试在之前进行一些检查执行导出。

我遇到的问题是,当我在文件名文本框中手动输入名称时,getSelectedFile() 方法返回 null。更令人困惑的是,getSelectedFile() 方法在三种不同情况下有效:

  1. 我通过 setSelectedFile() 填充它(用户点击了表格中的一个值,我使用 setSelectedFile())
  2. 我在文件查看器中单击现有文件
  3. 我在填充文件名文本框后按了 ENTER

我有三个文件过滤器,但无论它们是否启用,都具有相同的行为。

调用getSelectedFile()的监听器如下:

  • keyReleased 的事件监听器
  • mousePressed 的事件监听器。
  • 我的 jFileChooser 上的 PropertyChangeEvent 监听器
  • 我的 jFileChooser 上的 Action 监听器

是否有更好的方法来监听我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com