问题来了,因为我覆盖了 jPanel 的paintComponent 方法,所以当我重新绘制所有对象时,所有对象都被隐藏,直到我聚焦它们。我需要覆盖paintComponent 方法,因为它是我在互联网上找到的唯一一个更改jFrame 的背景图像的答案。
所以首先我创建了一个 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解决