没有 textArea 的 JFileChooser
JFileChooser with no textArea
我可能只是遗漏了一些非常简单的东西,但我无法在我创建的 JFileChooser
上显示文本区域,而且我无法通过 Internet 找到此问题的解决方案。我会准确地说,我正在研究 OSX 并且已经尝试过 setDialogType
。
我仍然坚持这个 UI:
我真的需要文本区域(设置文件名),如果我能保留 OSX-like UI.
会更好
更准确地说,我要添加这张图片的红色文本区域:
尝试将类型设置为 SAVE_DIALOG
。这将为您提供所需的文本字段(OPEN_DIALOG
和 SAVE_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);
我可能只是遗漏了一些非常简单的东西,但我无法在我创建的 JFileChooser
上显示文本区域,而且我无法通过 Internet 找到此问题的解决方案。我会准确地说,我正在研究 OSX 并且已经尝试过 setDialogType
。
我仍然坚持这个 UI:
我真的需要文本区域(设置文件名),如果我能保留 OSX-like UI.
会更好更准确地说,我要添加这张图片的红色文本区域:
尝试将类型设置为 SAVE_DIALOG
。这将为您提供所需的文本字段(OPEN_DIALOG
和 SAVE_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);