gpt4 book ai didi

java - 在 Swing 中显示图形时遇到问题

转载 作者:行者123 更新时间:2023-12-01 17:17:27 25 4
gpt4 key购买 nike

我一直在尝试直观地模拟交通问题,但由于某种原因,我在 Swing 窗口中只得到空白输出。我看到的不是不断移动的车辆图片,而是灰屏。

我的绘图类如下所示:

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class RoadNetwork extends JPanel {
BufferedImage tempicon = ImageIO.read(getClass().getResource("Truck.png"));
BufferedImage truckicon = new BufferedImage(tempicon.getWidth(), tempicon.getHeight(), BufferedImage.TYPE_INT_ARGB);

public RoadNetwork() throws IOException {
repaint();
}


protected void paintComponent (Graphics g) {
super.paintComponent(g);
g.clearRect(0, 0, 600, 600); // insert window size parameters here
for (int i = 0; i < AMEC.vehiclecounter; i++) {
if (AMEC.vehicle[i].spawned == true && AMEC.vehicle[i].finished == false) { // if the truck is somewhere on the plant
g.drawImage(truckicon, AMEC.getcoord(i)[0], AMEC.getcoord(i)[1], this);
}
}
g.drawImage(truckicon, 100, 100, this);
}
}

对我的主函数中的类的调用如下:

RoadNetwork roadnetwork = new RoadNetwork();
roadnetwork.setVisible(true);
JFrame frame = new JFrame();
frame.add(roadnetwork);
frame.setSize(600, 600);
frame.setVisible(true);

然后,在每次模拟迭代时,我都会调用

roadnetwork.repaint();

我错过了什么?

最佳答案

 BufferedImage tempicon = ImageIO.read(getClass().getResource("Truck.png"));
BufferedImage truckicon = new BufferedImage(tempicon.getWidth(), tempicon.getHeight(), BufferedImage.TYPE_INT_ARGB);

在第二个代码行的末尾,truckicon 仍然完全不可见(因为它是一个透明图像,我们没有绘制任何内容)。尝试一下。

 BufferedImage truckicon = ImageIO.read(getClass().getResource("Truck.png"));

关于java - 在 Swing 中显示图形时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20995005/

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