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

标签 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

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

bad

为什么会发生这种情况?我该如何解决这个问题?

最佳答案

g.dispose();

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

关于java - 为什么 fill3DRect 在我自己的计算机之外的其他计算机上无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223789/

相关文章:

ios - 恢复应用程序时 SceneKit 场景滞后

algorithm - n 个字形的边界框,给定单独的 bboxes 和 advances

java - 在 Java 中通过继承将子类对象添加到由父类(super class)数组组成的数组中

java - JButton 图像像素化

java - 无法应用Jlabel;原因: actual and formal argument list differ in length

java - 如何在另一个 JPanel 内的 JPanel 上绘制 Graphics2D?

java - JNA 加载许多具有相同方法名称的库

java - 如何在android上的另一个布局中为 TextView 分配一个值

java - web框架webwork在哪里?

java - 如何在计时器内绘制 2D 对象