如何本地化JFileChooser.SAVE_DIALOG的‘Save in:’标签?
解决JFileChooser保存对话框"Save in:"标签修改问题
嘿,我来帮你搞定这个头疼的小问题!
你之前尝试用UIManager.put("FileChooser.lookInLabelText", "...")修改没生效,核心原因是保存对话框的"Save in:"标签有自己独立的UI配置键,和打开对话框的"Look in:"不是同一个。
正确的修改方式
直接针对保存对话框的标签键来设置就好了,通用的键名是"FileChooser.saveInLabelText",代码示例如下:
// 先设置UIManager属性,一定要在创建JFileChooser实例之前执行! UIManager.put("FileChooser.saveInLabelText", "自定义保存路径:"); // 如果同时需要修改打开对话框的"Look in:",再加上这行 UIManager.put("FileChooser.lookInLabelText", "自定义浏览路径:"); // 然后创建保存对话框 JFileChooser saveChooser = new JFileChooser(); saveChooser.setDialogType(JFileChooser.SAVE_DIALOG); saveChooser.showSaveDialog(null);
为什么你看JFileChooser源码找不到JLabel?
这是Swing组件的设计逻辑导致的:JFileChooser本身只是定义了文件选择器的核心功能框架,具体的界面渲染(包括标签、按钮这些UI元素)是交给对应的FileChooserUI实现类来完成的——比如Windows系统下用的是WindowsFileChooserUI,跨平台的Metal风格用的是MetalFileChooserUI。这些UI实现类才会创建对应的JLabel,并从UIManager中读取对应的键值来设置文本。所以你直接看JFileChooser.java的源码,自然找不到这些标签的定义啦~
比如在WindowsFileChooserUI的源码里,就能找到类似这样的代码:
saveInLabel = new JLabel(UIManager.getString("FileChooser.saveInLabelText"));
内容的提问来源于stack exchange,提问作者Jörg
相关产品推荐
相关产品推荐

