我们在开发人员站点上发生了一个非常奇怪的错误,我们无法自行复制。
波兰的一位开发人员最近将他的 Windows XP Service Pack 3 机器升级到 4Gb 的 Ram 当他这样做时,他开始在使用 IBM JDK 1.5 的 Java 程序中遇到图形错误。这个错误只发生在 IBM JDK 1.5 中,而不会发生在任何其他版本中。
当您在窗体上创建按钮或控件并将鼠标移到它上面时,问题就会显现出来。
我们有一个测试程序
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class GraphicTest {
public static void main(String args[]) {
JFrame frame = new JFrame("GraphicTest");
frame.getContentPane().setLayout(new FlowLayout());
frame.setSize(200, 200);
JButton button = new JButton("Test button");
button.setVisible(true);
frame.getContentPane().add(button);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
这立即显示了问题。
但是,当我将相同的 Windows 版本升级到 4Gb 的 Ram 时,我自己的机器上不会出现问题。
有没有其他人见过这样的问题?
为了澄清这一点,这个问题只发生在 IBM JDK 1.5 中,并且只发生在我们有 4Gb 的 Ram 时。它不会发生在任何其他版本的 JDK 上,如果我们将内存量减少到 3 Gb,问题就会消失。