我发现自己无法利用绘图方法在 JFrame 中显示图像。如果从不调用 draw(Graphics p) 方法,则以下代码的功能完全相同。是什么导致了这种功能的缺乏,可以采取什么措施来解决它?(假设“C:\test\background.png”是有效路径。)没有编译时错误,也没有显示运行时错误。这是该计划中唯一的课程。尝试在 JPanel 内绘图并不能解决问题。
package gui;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
public class Main extends JFrame{
private Image mainMenuBackground;
private String state;
Graphics g;
Main(){
setSize(800, 600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
state = "main menu";
}
public static void main(String args[]){
Main m = new Main();
m.run();
}
public void loadImages(){
mainMenuBackground = new ImageIcon("C:\\test\\background.png").getImage();
}
public void run(){
try{
loadImages();
draw(g);
pack();
}catch(Exception ex){}
}
public void draw(Graphics p){
Graphics2D g = (Graphics2D) p;
g.drawImage(mainMenuBackground, 0, 0, null);
g.drawRect(0, 0, 50, 50);
}
}