JFrame 클래스에 netbeans 빌더 "디자인"을 사용하고 있습니다. 전통적인 JFrame을 가지고 있는데, JPanel을 빌더와 함께 추가했습니다.Swing Netbeans 빌더에 배경 이미지가 표시되지 않습니다.
이제 코드에서,이 같은이 패널에 배경을 추가 할 : 난 아무것도, 그냥 빈 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);
}
});
}
}
.
, BTW 나는 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);
}
}
[answer] (http://stackoverflow.com/a/9866659/1057230)를 참조하십시오. –
Netbeans은 XML 양식 파일을 사용하여 양식 디자이너에서 양식을 작성하고 표시하는 경향이 있으므로 addBackground 메소드를 실행하지는 않습니다. 또한, ImagePanel에 기본 constrcutor가 없다는 사실을 감안할 때, 나는 그것을 위해 놀랐습니다. 디자이너가 어떤 식 으로든 추가 할 수있게합니다. ImagePanel에 set/getImage 메서드를 추가하면 폼 디자이너 속성을 사용하여 이미지를 설정할 수 있습니다. 또한 파일 경로가 걱정됩니다. – MadProgrammer