ここで以前のトピックの1つを使用して、独自のImagePanelを作成しました。
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
public class ImagePanel extends JPanel{
private BufferedImage image = null;
public ImagePanel(BufferedImage im) {
image = im;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
}
}
そして、このパネルを通常のJPanelに追加するとよいと思いました(このすべてのNetBeansのものを使用してフレームに配置する方が簡単です)。そこで、1つ追加しました。NetBeansによってコードが生成されまし
private javax.swing.JPanel pnlImagePanel;
た。画像を表示したい瞬間が来たので、次のようにします。
File selectedFile = new File(path);
try {
image = ImageIO.read(selectedFile);
} catch(IOException ex) {
throw new RuntimeException(ex);
}
ImagePanel imPanel = new ImagePanel(image);
this.pnlImagePanel = imPanel;
this.pnlImagePanel.repaint();
問題は明らかです-結果は得られませんでした。うまくいかないの?メソッドpaintComponentをオーバーライドしたので、ポリモーフィズムが発生するはずです。それとも私には何かが欠けていますか?