Java 在Bizzare JFileChooser情况下,右键单击菜单文本为空
我在Redhat 6上使用了一个简单的JFileChooser,代码如下:Java 在Bizzare JFileChooser情况下,右键单击菜单文本为空,java,swing,user-interface,jfilechooser,Java,Swing,User Interface,Jfilechooser,我在Redhat 6上使用了一个简单的JFileChooser,代码如下: JFileChooser testFileChooser = new JFileChooser("Test"); testFileChooser.showOpenDialog(this); JFileChooser按预期工作。在文件选择区域中,如果我右键单击,将得到一个包含三行的对话框,其中一行带有箭头。没有描述行的功能的文本。第一行在列表视图和详图视图之间切换。第二行似乎什么也不做,第三行创建一个新文件夹。当我搜索这
JFileChooser testFileChooser = new JFileChooser("Test");
testFileChooser.showOpenDialog(this);
JFileChooser按预期工作。在文件选择区域中,如果我右键单击,将得到一个包含三行的对话框,其中一行带有箭头。没有描述行的功能的文本。第一行在列表视图和详图视图之间切换。第二行似乎什么也不做,第三行创建一个新文件夹。当我搜索这个问题时,似乎无法访问或检查JFileChooser的右键单击弹出对话框。我不明白它怎么会一开始就这样破裂。请告诉我如何解决这个问题。我找到了一个解决方法 JFileChooser在内部使用文件窗格,该窗格使用JFileChooser的getComponentPopupMenu作为上下文菜单。但是,因为它返回null,所以它创建自己的 标签上的文本通过UIManager.getString调用从UIManager获取。出于某种原因,UIManager正在返回空字符串 因此,我们只需手动设置UIManager中的字符串 如果您在创建文件选择器之前进行了这些调用,则可以修复它
UIManager.put("FileChooser.detailsViewActionLabelText", "Details");
UIManager.put("FileChooser.listViewActionLabelText", "List");
UIManager.put("FileChooser.viewMenuLabelText", "View");
UIManager.put("FileChooser.refreshActionLabelText", "Refresh"));
UIManager.put("FileChooser.newFolderActionLabelText", "New Folder");
我意识到这已经晚了4年,但我希望这能有所帮助。FYI这些菜单项的文本应该是“查看”、“刷新”和“新建文件夹”。我不知道为什么它可能不会出现。可能是某个语言文件丢失或错误?如何验证我的语言文件没有丢失?我不知道。或许可以尝试卸载并重新安装Java?请确保您正在EDT上下文中运行代码。您使用的是什么版本的Java?我很有信心,当我右键单击时,我已处于EDT状态。我不知道如何在调试器中设置断点来证明它。当我右键点击时,有什么方法可以证明我在EDT上吗?