gpt4 book ai didi

java - 线程 "main"中出现异常,Picture.java 和 PictureTester.java 中的mirrorHorizo​​ntal 类?

转载 作者:太空宇宙 更新时间:2023-11-04 06:09:51 25 4
gpt4 key购买 nike

这里我有一个类与 Picture.java 中的许多其他功能类一起编写。我的 APCS 类(class)包要求本类(class)“图片必须沿水平方向分割,底部镜像以类似于顶部”。

我导入了以下内容:

import java.awt.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.image.BufferedImage;
import java.text.*;
import java.util.*;
import java.util.List;

这是代码:

    public void mirrorHorizontal()
{
Pixel[][] pixels = this.getPixels2D();
Pixel bottomPixel = null;
Pixel topPixel = null;
int height = pixels[0].length;
for (int col = 0; col < pixels.length; col++)
{
for (int row = 0; row < height / 2; row++)
{
bottomPixel = pixels[(height - 1 - row)][col];
topPixel = pixels[row][col];
bottomPixel.setColor(topPixel.getColor());
}
}
}

在 PictureTester.java 中,我有:

 /** Method to test mirrorHorizontal */
public static void testMirrorHorizontal()
{
Picture caterpillar = new Picture("caterpillar.jpg");
caterpillar.explore();
caterpillar.mirrorHorizontal();
caterpillar.explore();
}
testMirrorHorizontal();

为了显示caterpillar.jpg而编写,然后将其显示在单独的窗口中,并启用水平镜像。图片尺寸为 150x329 像素。

两者编译良好,并且似乎是按顺序进行的,但是当我在 PictureTester.java 上单击“运行”时,只显示原始的 Caterpillar.jpg,并返回此错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 328
at Picture.mirrorHorizontal(Picture.java:155)
at PictureTester.testMirrorHorizontal(PictureTester.java:16)
at PictureTester.main(PictureTester.java:113)

我需要使用的 GUI 是 jGrasp。

最佳答案

您必须交换 colrow,因为您放错了位置

for (int col = 0; col < pixels.length; col++) {
for (int row = 0; row < height / 2; row++) {
bottomPixel = pixels[col][(height - 1 - row)];
topPixel = pixels[col][row];
bottomPixel.setColor(topPixel.getColor());
}
}

关于java - 线程 "main"中出现异常,Picture.java 和 PictureTester.java 中的mirrorHorizo​​ntal 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28869494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com