draw メソッドを使用して 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);
}
}