Java 1.6.0_51和Java 1.7.0_25 Swing应用程序使用Webstart失败
我们在JGoodies looks 2.2.2版本中使用JGoodies的PlasticLookAndFeel。我知道这个版本不是新版本,但我们也尝试了当前版本的JGoodies,但没有任何帮助 由于更新到Java 1.6.0_25或1.7.0_25,我们有几个问题无法解决 一些示例效果是:Java 1.6.0_51和Java 1.7.0_25 Swing应用程序使用Webstart失败,java,swing,java-web-start,look-and-feel,uimanager,Java,Swing,Java Web Start,Look And Feel,Uimanager,我们在JGoodies looks 2.2.2版本中使用JGoodies的PlasticLookAndFeel。我知道这个版本不是新版本,但我们也尝试了当前版本的JGoodies,但没有任何帮助 由于更新到Java 1.6.0_25或1.7.0_25,我们有几个问题无法解决 一些示例效果是: Stack Trace: null javax.swing.JFileChooser.isTraversable(Unknown Source) javax.swing.JFileChooser.setCu
Stack Trace:
null
javax.swing.JFileChooser.isTraversable(Unknown Source)
javax.swing.JFileChooser.setCurrentDirectory(Unknown Source)
javax.swing.JFileChooser.<init>(Unknown Source)
堆栈跟踪:
无效的
javax.swing.JFileChooser.isTraversable(未知源)
javax.swing.JFileChooser.setCurrentDirectory(未知源)
javax.swing.JFileChooser。(未知源)
或:小型JDialogs,没有可见和不可调整大小的内容
我们还试图将我们的电话集中到
UIManager.setLookAndFeel(xx)
并将其放入EDT线程,但这并没有解决问题。
()
如果我们删除这些通话,MetalLookAndFeel的一切都会正常运行。
问题只在于:
- Java 1.6.0更新51或Java 1.7.0更新25
- JavaWebStart
- 非标准外观和手感
谢谢。我们解决了这个问题。这是一个仅在Webstart中出现的类加载问题 一个简单的解决方法是:
Stack Trace:
null
javax.swing.JFileChooser.isTraversable(Unknown Source)
javax.swing.JFileChooser.setCurrentDirectory(Unknown Source)
javax.swing.JFileChooser.<init>(Unknown Source)
- 使用Webstart控制台(Java->Extended->Java控制台)启动应用程序
Stack Trace:
null
javax.swing.JFileChooser.isTraversable(Unknown Source)
javax.swing.JFileChooser.setCurrentDirectory(Unknown Source)
javax.swing.JFileChooser.<init>(Unknown Source)
- 在LookAndFeel方法initComponentDefaults()中向UIDefaults添加不同的类加载器
protected void initComponentDefaults(final UIDefaults table) {
table.put("ClassLoader", LookUtils.class.getClassLoader());
{
或
protected void initComponentDefaults(final UIDefaults table) {
final Object[] lookAndFeelDefaults = {"ClassLoader", LookUtils.class.getClassLoader()}
table.putDefaults(lookAndFeelDefaults);
{
还建议您在AWT事件调度程序线程中设置外观
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
try {
javax.swing.UIManager.setLookAndFeel(applicationLookAndFeel);
} catch (Exception e) {
e.printStackTrace();
}
}
});
原始帖子中的空指针是由一个丢失的图标引起的,该图标无法用标准类加载器加载。不了解mac,但自u25以来发生变化的一个重要因素是安全限制大大收紧。可能goodies试图访问沙箱中不再允许的内容。还有一点ng说:这不是mac的问题。JDK 1.7更新40有一个新版本,也许这个问题不再存在。如果sb知道更多,请在这里更新。我在发行说明中发现了导致mac出现问题的内容,这也是一个“图标问题”),可能与此类似。您好,我认为这是Java/Java用户的问题,而不是JGoodies的问题。在使用自己外观的较新Java版本中,JXTable也有类似的问题。JGoodies的演示与较新的Java版本配合得很好,因为它们在LaF中使用了类加载器