Cómo personalizar la imagen de fondo de la interfaz en Java Swing
En Java Swing, debes agregar una imagen personalizada o una imagen de fondo al contenedor.
Se proporcionan dos soluciones simples, una usa JPanel y la otra usa JLabel. El código es el siguiente:
1. ¿Paquete JPanel (código fuente)?oo;?
importar?java. . awt.Gráficos;?
importar?java.awt.Imagen;?
importar?java.io.Archivo;?
importar?javax.swing . ImageIcon;?
importar?javax.swing.JFrame;?
¿importar?javax.swing.JPanel;?
público?
público?
público?Dibujo()?{
initFrame();?
}
//?Inicialización ventana ?
¿público?{
/?¿Usar JPanel para agregar una imagen de fondo?
¿GImage?{
¿protegido?void?paintComponent(Graphics?g)?{
ImageIcon?icon?=?new?ImageIcon("image\benbenla .jpg");?
Imagen?img?=?icon.getImage();?
g.drawImage(img,?0,?0,?icon.getIconWidth( ),?
icon.getIconHeight(),?icon.getImageObserver());?
jframe.setSize(icon.getIconWidth(),?icon.getIconHeight()); ?
}?
};?
jframe.setTitle("Imagen de fondo de prueba");?
jframe.add( GImage);?
jframe.pack();?
jframe.setVisible(true);?
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?
}?
público?{
nuevo dibujo();?
}
}
2. ¿Paquete de código fuente JLabel?
¿importar?java.awt.Image;?
importar?javax.swing.ImageIcon;?
import?javax.swing.JFrame;?
import?javax.swing.JLabel;?
/**?¿Usar JLabel para crear imágenes? */?
¿público?
JFrame?
¿público?Drawing2()?{
init1Frame();?
}?
público?void?init1Frame()?
Init1Frame() {? .setImagen(
icon.getImage().getScaledInstance(icon.getIconWidth(),?
icon.getIconHeight(),?Image.SCALE_DEFAULT));?
System.out.println(icon .getIconHeight()? ?"" ?icon.getIconWidth());?
jlpic.setBounds(0,?0,?1366,?768);?
jlpic .setHorizontalAlignment(0);?
jlpic.setIcon(icon);?
jframe.setSize(1366,?768);?
jframe.add (jlpic);?
jframe.pack();?
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?
jframe.setVisible(true); ?
}?
público?{
¿nuevo?Dibujo2();?
}?
}
Agregar control: jlpic.setIcon(icon);
Container?c?=?new?Container();?
JLabel?user?= ?new?JLabel("Usuario:");?
JLabel?contraseña?=?new?JLabel("Contraseña:");?
JTextField?
JPasswordField?pwd_password?=?new?JPasswordField()?
{?
public?void?paste(){? ).provideErrorFeedback(this); ? }?
};?
usuario.setBounds(200, 25, 50, 25);?
contraseña. setBounds(200, 52, 50, 25);?
txf_userName.setBounds(300, 25, 150, 25);?
pwd_password.setBounds(300, 52, 150, 25);?
c.add(usuario);?
c.add(txf_userName);?
c.add(contraseña);?
c.add(pwd_password);?
c.add(jlpic);?
jframe.setSize(1366,?768);
//?jframe.add();
jframe.add(c);
//?