Java:终于找到了在alloy中的JFileChooser中的弹出式菜单不显示文字的解决办法
2015-06-17 12:34
399 查看
alloy界面可以说是我写过的最漂亮的一种JAVA界面。
可惜不知为什么,至从几年前推出1.4版后,就再也没有更新了。
随着java版本的升级,一直很担心alloy有一天不再适用于java的最新版。
现在在java6.0上用alloy,感觉还是很不错的,就是JFileChooser对话框上点右键时,弹出的菜单上的文字都是空白的,让人感觉不舒服。
今天我终于找到了解决的办法:
我首先找到了一个对于JFileChooser来说很关键的类:sun.swing.FilePane
我不明白,为什么要把FilePane放在sun.swing包中。
网上搜索了一下,看到有不少人说这个FilePane类没有的供源代码,可我感觉问题与这个类很有关系。
到网上下载了一个java反编译软件,然后到jdk目录将rt.jar解压缩,用反编译软件FilePane类反编译了一下,在我一行一行的检查之后,终于找到了问题之所在:
FilePane.java
解决办法:
UIManager.put("FileChooser.viewMenuLabelText","视图");
UIManager.put("FileChooser.newFolderActionLabelText","新建文件夹");
UIManager.put("FileChooser.refreshActionLabelText","刷新");
UIManager.put("FileChooser.listViewActionLabelText","列表");
UIManager.put("FileChooser.detailsViewActionLabelText","详细信息");
2007-10-27
可惜不知为什么,至从几年前推出1.4版后,就再也没有更新了。
随着java版本的升级,一直很担心alloy有一天不再适用于java的最新版。
现在在java6.0上用alloy,感觉还是很不错的,就是JFileChooser对话框上点右键时,弹出的菜单上的文字都是空白的,让人感觉不舒服。
今天我终于找到了解决的办法:
我首先找到了一个对于JFileChooser来说很关键的类:sun.swing.FilePane
我不明白,为什么要把FilePane放在sun.swing包中。
网上搜索了一下,看到有不少人说这个FilePane类没有的供源代码,可我感觉问题与这个类很有关系。
到网上下载了一个java反编译软件,然后到jdk目录将rt.jar解压缩,用反编译软件FilePane类反编译了一下,在我一行一行的检查之后,终于找到了问题之所在:
FilePane.java
protected void installDefaults() { java.util.Locale locale = getFileChooser().getLocale(); listViewBorder = UIManager.getBorder("FileChooser.listViewBorder"); listViewBackground = UIManager.getColor("FileChooser.listViewBackground"); listViewWindowsStyle = UIManager.getBoolean("FileChooser.listViewWindowsStyle"); readOnly = UIManager.getBoolean("FileChooser.readOnly"); viewMenuLabelText = UIManager.getString("FileChooser.viewMenuLabelText", locale); refreshActionLabelText = UIManager.getString("FileChooser.refreshActionLabelText", locale); newFolderActionLabelText = UIManager.getString("FileChooser.newFolderActionLabelText", locale); viewTypeActionNames = new String[2]; viewTypeActionNames[0] = UIManager.getString("FileChooser.listViewActionLabelText", locale); viewTypeActionNames[1] = UIManager.getString("FileChooser.detailsViewActionLabelText", locale); kiloByteString = UIManager.getString("FileChooser.fileSizeKiloBytes", locale); megaByteString = UIManager.getString("FileChooser.fileSizeMegaBytes", locale); gigaByteString = UIManager.getString("FileChooser.fileSizeGigaBytes", locale); }
解决办法:
UIManager.put("FileChooser.viewMenuLabelText","视图");
UIManager.put("FileChooser.newFolderActionLabelText","新建文件夹");
UIManager.put("FileChooser.refreshActionLabelText","刷新");
UIManager.put("FileChooser.listViewActionLabelText","列表");
UIManager.put("FileChooser.detailsViewActionLabelText","详细信息");
2007-10-27
相关文章推荐
- java:给图片上加水印
- Java this 关键字用法
- eclipse/myeclipse link 方式安装jad插件
- java unicode utf-8 String.getBytes
- Java:取得鼠标当前在屏幕中的位置
- Java读取“桌面”、“我的文档”路径的方法
- 终于解决了用JAVA写窗口程序在不同的windows界面下的显示保持一致。
- developerWorks Java 技术专区-这里有数百篇关于 Java 编程各个方面的文章
- Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析
- 在Java中调用与系统有关的剪切板Clipboard
- 我的Java开发学习之旅------>求N内所有的素数
- java中最常用jar包的用途说明,适合初学者
- Java之final
- java.io.IOException: The stream is closed
- Java之static
- Java之this与super
- java.util.zip.DataFormatException: invalid distance too far back
- 提高你的Java代码质量吧:推荐使用枚举定义常量
- Mac中Eclipse连不上Android手机的解决方法
- java 查看ssl log