我一直在mac os x上测试我的Swing应用程序,它运行在applet上.
当我在浏览器中运行此applet时,我注意到JMenus / JMenuItems上的鼠标悬停无法正常工作.
这是一个重现问题的小程序:
<code>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);
}
}
}
</code>
使用此代码,生成.jar文件.在Eclipse中,您可以使用导出功能,并且只确保将Main-Class定义为上面的类.
让jar运行后,创建一个包含内容的html文件:
<code><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> </code>
在此之后,运行html文件并检查菜单:它们不应该接收鼠标悬停事件.
难道我做错了什么?这是一个Java错误吗?
有没有mac用户来测试这个问题?
我正在使用Mac的最新Oracle JRE运行Mac OSX 10.7.4(http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1637588.html).用Firefox测试这个.
<code>java.vendor Oracle Corporation java.version 1.7.0_06 os.name Mac OS X os.version 10.7.4 </code>
谢谢
解决方法:
代码在这里工作正常.我怀疑这是JRE中的一个错误.
将代码更改为:
>转储java.version& java.vendor
>删除主要(这只会混淆事情) – 然后..
>提出错误报告.
试验机的细节
从这个properties applet获得的详细信息:
<code>Name Value java.vendor Oracle Corporation java.version 1.7.0_05 os.name Windows 7 os.version 6.1 </code>
浏览器:FireFox 15.0
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!