Versión Completa : JPanel + imagen de Fondo
<<AxEl>>
julio 19, 2006, 08:16
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
Oesoto
julio 19, 2006, 11:02
Este ejemplo me lo encontré en la siguiente página.
http://www.java-tips.org/java-se-tips/javax.swing/wrap-a-swing-jcomponent-in-a-background-image.html
Compila y funciona bien. Ahí se lo dejo en el adjunto.
PD: Estoy tratando de hacerlo mas sencillo en Eclipse usando también un jLabel pero me pasa lo mismo, cualquier elemento que le monte queda por debajo del supuesto fondo.
<<AxEl>>
julio 20, 2006, 10:25
Gracias-- men.. boy a probralo y cuento como me va con los resultados y otras cositas que he averiguado..
®-Diegoي
julio 24, 2006, 03:30
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.
Oesoto
julio 24, 2006, 06:37
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?
®-Diegoي
julio 25, 2006, 04:04
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.
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!
®-Diegoي
julio 25, 2006, 04:14
Pues off topic:
Cómo hacen para colocar código que quede justificado y con colorcitos y toda la cosa?
Gracias
Oesoto
julio 25, 2006, 04:22
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
®-Diegoي
julio 25, 2006, 10:37
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
Oesoto
julio 25, 2006, 10:41
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 ;)
®-Diegoي
julio 26, 2006, 01:43
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
Oesoto
julio 26, 2006, 05:22
Ya le puse el constructor vacio y en el main instancié un objeto de la misma clase y lo mandé a ejecutar el metodo initGUI y no pasa nada cuando lo ejecuto :\
VE es el Visual Editor para Eclipse
http://download3.eclipse.org/tools/ve/downloads/index.php
Aquí un Screenshot
http://img104.imageshack.us/img104/9868/98973906pd1.th.jpg (http://img104.imageshack.us/my.php?image=98973906pd1.jpg)
®-Diegoي
julio 27, 2006, 12:39
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
vBulletin®, Copyright ©2000-2008, Jelsoft Enterprises Ltd.