在Java中显示图形的问题

时间:2013-12-17 07:38:21

标签: java swing graphics

我正在用Java编写模拟,但是没有很多使用Graphics对象的经验。我写了一堂课

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);
    }
}

在我的main函数中,我按如下方式初始化类:

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函数吗?我做错了什么?

1 个答案:

答案 0 :(得分:5)

从你的代码中,你有一个错误的方法。

protected void paintcomponent (Graphics g) {

不是为油漆调用的。

protected void paintComponent (Graphics g) {

是方法的正确名称,它将覆盖父项1,JVM将调用此项。