非工作paintComponent方法

时间:2010-07-11 16:24:38

标签: java jpanel paintcomponent

代码:

import javax.swing.*;
import java.awt.*;

public class firstGUI extends JPanel {

    public static void main(String[] args) {
        JFrame frame =  new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500,500);
        frame.setVisible(true);
    }

    public void paintComponent(Graphics g) {
        Image image = new ImageIcon("dist.jpg").getImage();
        g.drawImage(image,0,0, this);
    }
}

编译完美,但是当我运行它时,它只显示一个表单。没有图片(或paintComponent中的任何其他操作)出现。有什么我想念的吗?

1 个答案:

答案 0 :(得分:4)

您的paintComponent方法是firstGUI类(JPanel)的实例方法。问题是您没有创建firstGUI的实例并将其添加到框架中。

以下替换main方法实例化firstGUI并将其添加到框架的contentPane

public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(500, 500);
    frame.getContentPane().add(new firstGUI());
    frame.setVisible(true);
}