为什么fill3DRect在我自己以外的其他计算机上无法正常工作?

时间:2012-09-01 00:00:22

标签: java swing graphics java-2d paintcomponent

我正在开发一个视觉排序算法项目,我正在JPanel中绘制它们:

public void paint(Graphics g) {
    super.paint(g);
    g.setColor(Color.WHITE);
    for (int i = 0; i < array.length; i++) {
        g.fill3DRect(i * barWidth, height, barWidth, -array[i], true);
    }
    g.dispose();
}

我编译了我的程序并在我的Windows 7计算机上运行了jar,我正确地绘制了条形图:

good http://s15.postimage.org/n3crlmpmz/good.png

我在另一台Windows 7计算机和Mac上进行了测试,并且错误地绘制了条形码:

bad http://s18.postimage.org/7db11akll/bad.png

为什么会这样?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

g.dispose();

仅在代码创建的图形实例上调用dispose()。这个是由JRE提供的。