JPanel + imagen de Fondo

<<AxEl>>

Lanero Reconocido
11 Oct 2002
1,114
Saludos señores.... vengo con algo que no me ha podido funcioanr aun...

a ver -.. resulta que tenga una aplicacion en java swing... el contenedor principal es un JFrame.. y por dentro tengo un JPanel que es en el que pondre los elementos... bueno mi idea es ponerle una imagencita de fondo al JPanel... por ahi encontre que uno lo que hacia era crear una clase que extendiera de JPanel() y sobreescribir el metodo paint de la clase... ahi es donde se haria la carga de la imagen... pero pues hice eso.. y la imagen me la carga pero me la monta como encima de lso demas componentes(Label, select, etc)... y pues lña idea es que me sirva de background... porfa si alguien me echa una manita se lo agradecere...

Saludos
 

Archivos adjuntos

  • example.zip
    116.3 KB · Visitas: 1,380
  • Me gusta
Reacciones: 2 personas
Gracias-- men.. boy a probralo y cuento como me va con los resultados y otras cositas que he averiguado..
 
Pero pues yo he trabajado tan solo creando un JLabel que contenga una imagen, y pues declarar cualquier otro componente justo después de la declaración de este JLabel. Y listo! Funciona perfecto.
 
dfsalasa45 dijo:
Pero pues yo he trabajado tan solo creando un JLabel que contenga una imagen, y pues declarar cualquier otro componente justo después de la declaración de este JLabel. Y listo! Funciona perfecto.

Eso hice yo para probar si me funcionaba, declaré primero el Jlabel con el fondo y luego declaré un Jlabel y le hice un setText para que quedara con algo, sin embargo siguió apareciendo "debajo" del fondo. Lo que si no me fijé es si quedó declarado despues de la declaración del Jlabel en el código. Tenés algun SRC pequeño que ya funcione para probarlo?
 
Es una JDialog con una JLabel que tiene una imagen. Además hay un JButton que queda por encima de la imagen.

Recuerda crear el main necesario para ejecutar la clase. Además colocar la imagen que te adjunto en la carpeta que está especificado en el código.

El código está hecho utilizando el plugin Jigloo para Eclipse.

Código:
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class DInicial extends javax.swing.JDialog {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	/*Es sólo un requerimiento del compilador por implementar la
	  interfaz Serializable*/
	static final long serialVersionUID = 1L;
	private JLabel LImagen;
	private JButton BEntrar;

	public DInicial(Principal frame,boolean value) {
		super(frame,value);
		initGUI();
	}
	
	private void initGUI() {
		try {
			this.setSize(407, 272);
			this.setLocation(250,250);
			this.setResizable(false);
			this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle("Bienvenido a InfOdont");
			{
				LImagen = new JLabel();
				getContentPane().add(LImagen);
				LImagen.setIcon(new ImageIcon(getClass().getClassLoader().getResource("imagenes/Diente.jpg")));
				LImagen.setBounds(0, 0, 399, 245);
				{
					BEntrar = new JButton();
					LImagen.add(BEntrar);
					BEntrar.setText("Entrar");
					BEntrar.setBounds(154, 210, 84, 21);
					BEntrar.setFont(new java.awt.Font("Times New Roman",0,14));
					BEntrar.addMouseListener(new MouseAdapter() {
						public void mouseClicked(MouseEvent evt) {
							BEntrarMouseClicked(evt);
						}
					});
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private void BEntrarMouseClicked(MouseEvent evt) {
		this.dispose();
	}

}

Nos cuentas como te va.

Saludos!
 

Archivos adjuntos

  • Diente.jpg
    Diente.jpg
    22.4 KB · Visitas: 317
No he podido probarlo, el compilador me pone problema en el constructor de DInicial en la parte de "Principal frame"

PD: Podés poner un screenshot del editor Swing que tenés para Eclipse?

Gracias
 
Ahhh lo del principal frame es porque este es el código de un JDialog que es llamado desde un JFrame, entonces pues el constructor del JDialog recibe ese JFrame desde el cual es llamado para saber cual es el padre, pero no hay problema, solo borrando esa referencia y poniendo el contructor vacío o con el booleano.

Ahí te envío el screenshot. Disculparán la conversación del messenger jejeje.

SAludos
 

Archivos adjuntos

  • Dibujo.JPG
    Dibujo.JPG
    169 KB · Visitas: 587
  • Me gusta
Reacciones: 2 personas
Se ve bacano el editor, yo uso el VE para Eclipse pero quería ver otras alternativas.

PD: Pondré el constructor vacio a ver que pasa, gracias por la información ;)
 
Cuál es el VE? Podrías hacer lo mismo y poner un screenshot?

Y coméntanos cómo te fue con el constructor vacío.

Saludos
 
No, lo que pasa es que si poner el constructor vacío, pues aún así hay que ejecutar el constructor de JDialog, es decir super() tambien vacío. Si no, pues no se construye el dialogo.

Saludos´

Edit: Bueno, y qué pasó con la pruebita del super vacío! :p Y nadie me respondió la pregunta de cómo poner código justificado y con colorcitos! jejeje
 
Porfin!! logre encontrar ese bendito codigo xDD aver como me va, gracias al que lo puso xDDD

salu2
 

Los últimos temas