代码:
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
中的任何其他操作)。我有什么遗漏的吗?
最佳答案
您的 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);
}
关于java - 非工作paintComponent方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3223767/