没有 textArea 的 JFileChooser

JFileChooser with no textArea

我可能只是遗漏了一些非常简单的东西,但我无法在我创建的 JFileChooser 上显示文本区域,而且我无法通过 Internet 找到此问题的解决方案。我会准确地说,我正在研究 OSX 并且已经尝试过 setDialogType

我仍然坚持这个 UI:

我真的需要文本区域(设置文件名),如果我能保留 OSX-like UI.

会更好

更准确地说,我要添加这张图片的红色文本区域:

尝试将类型设置为 SAVE_DIALOG。这将为您提供所需的文本字段(OPEN_DIALOGSAVE_DIALOG 之间的区别完全是装饰性的)。您将需要手动覆盖标题栏的文本并保存按钮以读取 "open",以便让用户清楚对话框的用途。您还需要执行一些操作,以防用户输入不存在的文件名。

所以,我通过更改 UI 样式解决了这个错误,我不得不承认我对这种解决方案不是很满意,但这是两行代码,不应该引入任何错误;稍微打破我设计的工作流程。它仍然是进行最小更改的最佳选择;如果您不想这样做,我想您可以构建自己的对话框,但需要更多时间。

我把 "magical" 代码放在那里:

    try {
        UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
    } catch (Exception e) {
        // If you got no chance ;)
    }

编辑:

我弄错了,用错了方法。我使用 showOpenDialog(Component parent) 而不是 showDialog(Component parent, String approveButtonTitle)。最后你可以通过写这样的东西来得到你想要的东西:

JFileChooser fc = new JFileChooser();
String title = isLoad ? "Load the game" : "Save the game";
int type = isLoad ? JFileChooser.OPEN_DIALOG:JFileChooser.SAVE_DIALOG;
fc.setDialogType(type);
fc.showDialog(null, title);