問題が発生するのは、jPanel の paintComponent メソッドを上書きするためです。そのため、再描画すると、オブジェクトにフォーカスするまですべてのオブジェクトが非表示になります。jFrameの背景画像を変更するためにインターネットで見つけた唯一の答えであるため、paintComponentメソッドを上書きする必要があります。
まず、jPanel クラスを作成します。
public class JPanelFondoPrincipal extends javax.swing.JPanel {
public JPanelFondoPrincipal(){
this.setSize(800,500);
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
Dimension tamanio = getSize();
ImageIcon imagenFondo = new ImageIcon(getClass().getResource("/images/fondo_principal.png"));
g.drawImage(imagenFondo.getImage(),0,0,tamanio.width, tamanio.height, null);
setOpaque(false);
}
}
そして私のjPanelFormで:
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
JPanelFondo p = new JPanelFondo();
this.add(p);
validate();
p.repaint();
}
すべてのオブジェクト (ラベル、テキストフィールド...) を新しいパネルに追加しようとしたので、再描画後に追加し、すべてのオブジェクトを手動で表示できるように設定しましたが、まだすべてが表示されません。
どうもありがとう、私は 6 日でアプリを完成させる必要があり、私は分ごとに夢中になっています
編集: CARDLAYOUT のおかげで解決しました