Swing菜单Java 7 mac osx

我一直在测试运行在applet上的mac os x上的Swing应用程序。

当我在浏览器中运行此applet时,我注意到JMenus / JMenuItems上的鼠标hover无法正常工作。

这是一个重现问题的小程序:

package com.macosx.tests; import java.applet.Applet; import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Example extends JApplet { JMenuBar bar; JMenu file, edit; JMenuItem new1, save, close; private void doStart() { bar = new JMenuBar(); file = new JMenu("File"); edit = new JMenu("Edit"); new1 = new JMenuItem("New"); save = new JMenuItem("Save"); close = new JMenuItem("Close"); setJMenuBar(bar); bar.add(file); bar.add(edit); file.add(new1); file.add(save); file.add(close); } @Override public void start() { try { SwingUtilities.invokeAndWait(new Runnable() { public void run() { doStart(); } }); } catch (Exception e) { throw new RuntimeException(e); } } } 

使用此代码,生成.jar文件。 在Eclipse中,您可以使用导出function,并且只确保将Main-Class定义为上面的类。

让jar运行后,创建一个包含内容的html文件:

   Menu test Applet     

在此之后,运行html文件并检查菜单:它们不应该接收鼠标hover事件。 难道我做错了什么? 这是一个Java错误吗? 有没有mac用户来测试这个问题?

我正在使用Mac的最新Oracle JRE运行Mac OSX 10.7.4(http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1637588.html)。 用Firefox测试这个。

 java.vendor Oracle Corporation java.version 1.7.0_06 os.name Mac OS X os.version 10.7.4 

谢谢

代码在这里工作正常。 我怀疑这是JRE中的一个错误。

将代码更改为:

  1. 转储java.versionjava.vendor
  2. 删除主要(这只会混淆事情) – 然后..
  3. 提出错误报告。

试验机的细节

从此属性applet获取的详细信息:

 Name Value java.vendor Oracle Corporation java.version 1.7.0_05 os.name Windows 7 os.version 6.1 

浏览器: FireFox 15.0