我一直在mac os x上测试我的Swing应用程序,它运行在applet中。
当我在浏览器中运行这个applet时,我注意到JMenus/JMenuItems的鼠标悬停不正确。
这是一个小程序来重现这个问题:
使用这段代码生成一个.jar文件。在Eclipse中,您可以使用导出功能,并确保将Main-Class定义为上面的类。
一旦您拥有了jar文件,就可以创建一个包含以下内容的html文件:
在这之后,运行html文件并检查菜单:它们不应该接收鼠标悬停事件。我做错了什么吗?这是Java的一个bug吗?有没有Mac用户测试这个问题? 我正在运行Mac OSX 10.7.4,安装了最新的Oracle JRE for Mac(http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1637588.html)。使用Firefox进行测试。
当我在浏览器中运行这个applet时,我注意到JMenus/JMenuItems的鼠标悬停不正确。
这是一个小程序来重现这个问题:
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中,您可以使用导出功能,并确保将Main-Class定义为上面的类。
一旦您拥有了jar文件,就可以创建一个包含以下内容的html文件:
<html>
<head>
<title>Menu test Applet</title>
</head>
<body>
<applet id="appletID" height="800" width="600"
code="com.macosx.tests.Example"
archive="tests.jar">
</applet>
</div>
</body>
</html>
在这之后,运行html文件并检查菜单:它们不应该接收鼠标悬停事件。我做错了什么吗?这是Java的一个bug吗?有没有Mac用户测试这个问题? 我正在运行Mac OSX 10.7.4,安装了最新的Oracle JRE for Mac(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
谢谢