Java - Sobre orden de JlayeredPane

   
Vista:

Sobre orden de JlayeredPane

Publicado por SergioAB (16 intervenciones) el 01/01/2010 20:58:39
Hola
A ver si sois tan amables y podeis ayudarme en dos temas que no consigo solucionar :)

En primer lugar comentaros que estoy usando este codigo que os adjunto para crear simplemente un fondo con dos botones.
La cosa esta en que cuando ejecuto dicho codigo (utilizo eclipse) me sale perfectamente el fondo y el "boton 1", pero el "boton 2" no se hace visible hasta que no paso el raton por encima de donde esta situado el "boton 2", entiendo que puede ir relacionado con el orden de las "capas" del JLayeredPane, pero no estoy seguro de como solucionarlo.

La segunda consulta seria en base a que mediante la orden setsize, estoy definiendo el tamaño del JFrame, asi como definiendo tambien el tamaño del JLabel, sabriais decirme de alguna forma de que la ventana se ajuste al tamaño de la imagen automaticamente?
..O bien, como solucion alternativa, alguna forma de que no sea posible escalara la ventana del programa una vez ejecutado este estirando desde las esquinas... no se si me he explicado bien, me refiero a que sea una ventana de tamaño fijo, no modificable.

Si me lo pudierais comentar con ejemplos, os lo agradeceria, ya que pienso que es la forma mas grafica de aprender :)

De ante mano, muchas gracias a todos por vuestro trabajo, atencion y paciencia.

Un saludo, Sergio

Os adjunto el codigo:

---

import java.awt.FlowLayout;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import java.awt.*;
import java.awt.event.*;

public class ventana_con_fondo extends JFrame
{
JButton boton;
JButton botondos;
JFrame marco;
public ventana_con_fondo()
{
marco=new JFrame("Helou Vierco");
JFrame.setDefaultLookAndFeelDecorated(true);
setSize(680,416);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
boton =new JButton ("Boton numero uno");
botondos =new JButton ("Boton numero dos");
EscuchaBoton eb =new EscuchaBoton();
boton.addActionListener(eb);
botondos.addActionListener(eb);
ImageIcon fondo = new ImageIcon(Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("fondo.jpg")));
JLabel etiqueta_de_fondo=new JLabel(fondo);
etiqueta_de_fondo.setSize(680,416);

JLayeredPane panel_de_fondo = new JLayeredPane();

JLayeredPane panel_para_botones = new JLayeredPane();
panel_para_botones.setLayout(new FlowLayout());

panel_para_botones.add(boton );
panel_para_botones.add(botondos);
panel_para_botones.setSize(640,480);


panel_de_fondo.add(etiqueta_de_fondo);
panel_de_fondo.add(panel_para_botones);
this.setContentPane(panel_de_fondo);

this.setVisible(true);

}
public class EscuchaBoton implements ActionListener{
public void actionPerformed(ActionEvent e){
JButton virtual = (JButton)e.getSource();
if(virtual==boton){
System.out.println("Pulsado boton uno");
}
if(virtual==botondos){
System.out.println("Pulsado boton dos");
}
}
}
public static void main(String args [])
{
new ventana_con_fondo();
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sobre orden de JlayeredPane

Publicado por jack (18 intervenciones) el 01/01/2010 22:30:11
hola SergioAB
tu problema es facil de solucionar pra que los botones aparezcan al ejecutar la aplicacion
basta con especificar las capas en la que agrgas la imagen de fondo y el panel de botones
ese decir algo asi:

panel_de_fondo.add(etiqueta_de_fondo,1);
panel_de_fondo.add(panel_para_botones,0);

para dejar tu ventana con un tamaño fijo basta con usar el metodo setResizable(boolean);
es decir quedaria asi

this.setResizable(false);

con eso es suficiente para solucionar tu problema

ahora te quiero decir que el JFrame que creas con el nombre marco esta sobrando por que la clase ensi esta heredando de JFrame

espero que te sirva

jeje feliz año nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre orden de JlayeredPane

Publicado por SergioAb (16 intervenciones) el 02/01/2010 10:46:37
Como siempre, muchas gracias Jack, espeoro poder invitarte algun dia a una cervecita... o al paso que me estas ayudando, mejor te invito a comer :)

igualmente Feliz año nuevo para ti y para todo el foro

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar