Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 1.6.0_51和Java 1.7.0_25 Swing应用程序使用Webstart失败_Java_Swing_Java Web Start_Look And Feel_Uimanager - Fatal编程技术网

Java 1.6.0_51和Java 1.7.0_25 Swing应用程序使用Webstart失败

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

我们在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.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
  • 非标准外观和手感
如果有人知道一个解决方案或能帮我们做一些TIPP,我们将非常高兴


谢谢。

我们解决了这个问题。这是一个仅在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中使用了类加载器