JFrameクラスでnetbeansビルダーの「design」を使用しています。私は従来のJFrameを持っており、それに(ビルダーを使用して)JPanelを追加しました。
コードで、次のようにこのパネルに背景を追加したいと思います。
public class NewJFrame extends javax.swing.JFrame {
public NewJFrame() {
initComponents();
addBackground();
}
private void addBackground()
{
Image bgImage;
try {
bgImage = ImageIO.read(new File("src/general/Mockup.png"));
jPanel1.add(new NewJFrame.ImagePanel(bgImage));
jPanel1.repaint();
} catch (IOException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
}
何も表示されません。空のJFrame/JPanelだけです。
ところで、私はこれをImagePanelコードに使用しています
@SuppressWarnings("serial")
class ImagePanel extends JPanel {
private Image image;
ImagePanel(Image image) {
this.image = image;
};
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
}