Java - Problemas con interfaz grafica

 
Vista:

Problemas con interfaz grafica

Publicado por Yo mismo (20 intervenciones) el 24/07/2008 11:19:49
Cuando creo este panel me sale todo en unos tamaños desproporcionados...(por ejemplo el textfield va de lado a lado del panel) y no se porque es...¿Alguien puede decirme como ajustarlo al tamaño que yo quiero? Adjunto el codigo


public class PanelLogin extends JPanel{
private JMenuItem mensaje;
private JLabel etiqLogin;
private JLabel imagen;
private JLabel etiqPass;
private JTextField textoLogin;
private JPasswordField textoPass;
private JButton botonOK;
private JButton botonAlta;
private Ventana ventanaprincipal;

public PanelLogin(Ventana interfaz){
this.ventanaprincipal= interfaz;
initComponents();
setupComponents();
layoutComponents();
addEventHandlers();
}

void initComponents(){
mensaje=new JMenuItem("Introduzca sus datos o dese de alta");
etiqLogin=new JLabel("login");
etiqPass=new JLabel("Password");
textoLogin=new JTextField();
textoPass=new JPasswordField();
botonOK=new JButton("ok");
botonAlta=new JButton("Alta");


}

void setupComponents(){
mensaje.setSize(50,20);
etiqLogin.setSize(50,20);
etiqPass.setSize(50,20);
textoLogin.setSize(100,20);
textoPass.setSize(100,20);
botonOK.setSize(50,20);
botonAlta.setSize(50,20);
}

void layoutComponents(){
GridLayout g1=new GridLayout(7,3);
g1.setVgap(10);
g1.setHgap(30);
this.setLayout(g1);
this.add(mensaje);
this.add(etiqLogin);
this.add(textoLogin);
this.add(etiqPass);
this.add(textoPass);
this.add(botonOK);
this.add(botonAlta);
}


void addEventHandlers(){
this.botonOK.addActionListener(new GestionBotonesLogin(this.ventanaprincipal));
this.botonAlta.addActionListener(new GestionBotonesLogin(this.ventanaprincipal));
}
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:Problemas con interfaz grafica

Publicado por Mario (199 intervenciones) el 24/07/2008 13:14:56
Si no me equivoco, estás usando un GridLayout. Creo que al hacer un grid de 7x5, lo que hace es dividirte el panel en 35 celdas iguales, y cada componente que insertes tiende a ocupar todo el espacio de esa celda.
Yo probaría dos cosas:
1- Asignarle un tamaño máximo a los componentes que no quieres que "crezcan" más de la cuenta, a ver si el layout te respeta esa restricción.
2- Cambiar de layout. Creo que hay uno llamado GridBoxLayout en el que sí puedes tener celdas de distintas dimensiones. Por otro lado, no se desde que version, pero la última es seguro que lo tiene, Netbeans incluye un layout que manejas desde el diseñador y vas vinculando los bordes de los componentes entre sí, de forma que al hacer el resize lo hacen de una forma coherente y más o menos automática. Yo casi siempre es lo que uso, y si hace falta, hecho mano de alguna que otra restricción de tamaño o posición.
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