0
我正在用Java写一个模拟器,但没有很多使用Graphics对象的经验。我写了一个类在Java中显示图形的问题
public class RoadNetwork extends JPanel {
BufferedImage truck1;
public RoadNetwork() throws IOException{
truck1 = ImageIO.read(getClass().getResource("Truck.png"));
}
protected void paintcomponent (Graphics g) {
super.paintComponent(g);
g.drawImage(car1, 0, 0, 100, 100, this);
}
}
在我的主要功能,我初始化类,如下所示:
JFrame F1 = new JFrame();
F1.setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
F1.setSize(1280,760);
RoadNetwork roadnetwork = new RoadNetwork();
roadnetwork.setPreferredSize(new Dimension(500,500));
roadnetwork.setVisible(true);
constraints.gridx = 40;
constraints.gridy = 40;
F1.add(roadnetwork, constraints);
F1.setVisible(true);
不过,我只是得到一个灰框作为输出,没有图像。我已经通过将其作为单独的ImageIcon添加到框架中来测试该图像,并且可行。但是,我似乎无法让RoadNetwork类在框架中显示。我应该以某种方式调用paintcomponent函数吗?我究竟做错了什么?
非常感谢;这解决了这个问题。 – Martin
当您的意图是重写某个方法时,添加@Override注释。这样,如果再犯一个错字,编译器会检测到它并抛出错误,因为该方法不会重写任何东西。 –