【发布时间】:2013-01-30 03:59:29
【问题描述】:
下面是一些在 EDT 上创建和显示 JProgressBar 的代码。在 Apple 的 Java 6 上,进度条是动画的。在 Oracle 的 Java 7 上,它不会:
import javax.swing.*;
public class ScratchSpace {
public static void main(String[] args) {
System.out.println("java.version = " + System.getProperty("java.version"));
System.out.println("java.vm.version = " + System.getProperty("java.vm.version"));
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JProgressBar progressBar = new JProgressBar();
progressBar.setIndeterminate(true);
JFrame frame = new JFrame();
frame.getContentPane().add(progressBar);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
确切地说,我使用的是 Java 1.7.0_12-ea 和 OS X 10.8.3。
你能看出我做错了什么吗?如果没有,是否有解决方法?
编辑:这是文本输出:
java.version = 1.7.0_12-ea
java.vm.version = 24.0-b27
编辑:it seems to be a known problem
所以现在我的问题是:我该如何解决这个问题?
【问题讨论】:
-
“你能看出我做错了什么吗?” 我觉得很好。事实上,这个简短的示例和结果表明 JRE 中存在错误。检查bug DB 是否有任何类似和可能的解决方法。如果没有发现,请提出新的报告。
-
您能在输出中添加
java.version+**java.vm.version** 吗?我不确定是否有必要,但它不会伤害。
标签: java macos swing event-dispatch-thread jprogressbar