JLabel y JTextField demasiado pequeños.

Iniciado por MauroMasciar, 13 Marzo 2011, 00:43 AM

0 Miembros y 1 Visitante están viendo este tema.

MauroMasciar

Hola gente..
Hace un tiempo vengo tratando de aprender lo de GridLayout, y lo quise poner en practica en esta ventana que estuve haciendo... El problema es este:



El codigo del GridLayout de la ventana es:

Código (java) [Seleccionar]
GridLayout marco = new GridLayout(4, 2, 10, 10);
setLayout(marco);


Primero viene el titulo
Después para poner las coordenadas
Después todo los JLabel y JTextField
Y finalmente el boton. (Que éste es un FlowLayout)

Esas cuatro cosas puestas en cuatro JPanel diferentes con GridLayout... (Y ultimo con FlowLayout)

El código de los JLabel y los JTextField es es siguiente:
Código (java) [Seleccionar]
JPanel pnSoldadosAEnviar = new JPanel();
       //FlowLayout SoldEnviar = new FlowLayout();
       GridLayout SoldEnviar = new GridLayout(9, 2, 10, 10);
       pnSoldadosAEnviar.setLayout(SoldEnviar);
       //pnSoldadosAEnviar.add(lblTitSoldados, JLabel.CENTER);
       pnSoldadosAEnviar.add(lblAsalto);
       pnSoldadosAEnviar.add(txtAsalto);
       pnSoldadosAEnviar.add(lblEspeciales, JLabel.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(txtEspeciales, JTextField.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(lblFrancoTiradores, JLabel.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(txtFrancoTiradores, JTextField.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(lblAntiTanques, JLabel.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(txtAntiTanques, JTextField.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(lblMedicos, JLabel.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(txtMedicos, JTextField.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(lblHelicopterosAtaque, JLabel.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(txtHelicopterosAtaque, JTextField.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(lblAvionesCaza, JLabel.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(txtAvionesCaza, JTextField.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(lblTransporteHelis, JLabel.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(txtTransporteHelis, JTextField.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(lblTransporteAvion, JLabel.RIGHT_ALIGNMENT);
       pnSoldadosAEnviar.add(txtTransporteAvion, JTextField.RIGHT_ALIGNMENT);
       add(pnSoldadosAEnviar);


Alguien me podría ayudar?
Si necesitan algún dato mas por favor pregunten...
Gracias de antemano..

Otro dato: Cuando agrando la ventana, los TextField y los Label se van acomodando y poniendo en su tamaño normal (Aunque igualmente siguen siendo chicos)
Tutto ha oceani da attraversare mentre hanno il coraggio di farlo Avventato? Ma sanno sogni di limiti

Twitter: @MauroMasciar

MauroMasciar

Tutto ha oceani da attraversare mentre hanno il coraggio di farlo Avventato? Ma sanno sogni di limiti

Twitter: @MauroMasciar

1mpuls0

La verdad no veo falla en ese código, no quieres escribir lo todo?, mandamelo por mp y lo reviso.

O intenta con setLayout(null)

:p
abc

MauroMasciar

#3
Te envie el msj, pero en mi bandeja de salida no aparece, asi que posteo el codigo aca, excluyendo el actionPerformed por las dudas...
Código (java) [Seleccionar]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class nuevoAtaque extends JFrame implements ActionListener {
   JLabel lblTitulo = new JLabel("Coordinar nuevo ataque", JLabel.CENTER);
   JLabel lblXCoord = new JLabel("Coordenadas X:");
   JLabel lblYCoord = new JLabel("Coordenadas Y:");
   JLabel lblTitSoldados = new JLabel("Unidades a enviar:");
   JLabel lblFrancoTiradores = new JLabel("Francotiradores:");
   JLabel lblEspeciales = new JLabel("Especiales:");
   JLabel lblMedicos = new JLabel("Medicos:");
   JLabel lblAntiTanques = new JLabel("Anti-Tanques:");
   JLabel lblTransporteHelis = new JLabel("Helicopteros Transportadores:");
   JLabel lblAvionesCaza = new JLabel("Aviones caza:");
   JLabel lblAsalto = new JLabel("Asalto:");
   JLabel lblHelicopterosAtaque = new JLabel("Helicopteros de ataque");
   JLabel lblTransporteAvion = new JLabel("Aviones Transportadores");
   JLabel lblExplicacion = new JLabel();

   JTextField txtXCoord = new JTextField(10);
   JTextField txtYCoord = new JTextField(10);
   JTextField txtAsalto = new JTextField(10);
   JTextField txtEspeciales = new JTextField(10);
   JTextField txtFrancoTiradores = new JTextField(10);
   JTextField txtAntiTanques = new JTextField(10);
   JTextField txtMedicos = new JTextField(10);
   JTextField txtTransporteHelis = new JTextField(10);
   JTextField txtAvionesCaza = new JTextField(10);
   JTextField txtHelicopterosAtaque = new JTextField(10);
   JTextField txtTransporteAvion = new JTextField(10);

   JButton btnEnviar = new JButton("Enviar soldados");

   int asignAsaltos;
   int asignEspeciales;
   int asignFrancoTiradores;
   int asignAntiTanques;
   int asignMedicos;
   int asignHelicopterosAtaque;
   int asignAvionesCaza;
   int asignTransporteHelis;
   int asignTransporteAvion;
   
   public nuevoAtaque() {
       setTitle("Nuevo ataque");
       setSize(800, 600);
       GridLayout marco = new GridLayout(4, 2, 10, 10);
       setLayout(marco);

       //Listeners
       btnEnviar.addActionListener(this);

       //Etiquetas de ventana principal
       JPanel etiquetasVentPrinc = new JPanel();
       GridLayout glEtiqPrinc = new GridLayout(1, 1, 10, 10);
       etiquetasVentPrinc.setLayout(glEtiqPrinc);
       etiquetasVentPrinc.add(lblTitulo);
       add(etiquetasVentPrinc); //1

       JPanel pnCoord = new JPanel();
       GridLayout glCoordSold = new GridLayout(2, 2, 10, 10);
       //FlowLayout Coord = new FlowLayout();
       pnCoord.setLayout(glCoordSold);
       pnCoord.add(lblXCoord);
       pnCoord.add(txtXCoord);
       pnCoord.add(lblYCoord);
       pnCoord.add(txtYCoord);
       add(pnCoord); //cont =2

     

       JPanel pnSoldadosAEnviar = new JPanel();
       //FlowLayout SoldEnviar = new FlowLayout();
       //GridLayout SoldEnviar = new GridLayout(10, 2);

       pnSoldadosAEnviar.setLayout(new GridLayout(9, 2, 10, 10));

       //pnSoldadosAEnviar.add(lblTitSoldados, JLabel.CENTER);
       pnSoldadosAEnviar.add(lblAsalto);
       pnSoldadosAEnviar.add(txtAsalto);
       pnSoldadosAEnviar.add(lblEspeciales);
       pnSoldadosAEnviar.add(txtEspeciales);
       pnSoldadosAEnviar.add(lblFrancoTiradores);
       pnSoldadosAEnviar.add(txtFrancoTiradores);
       pnSoldadosAEnviar.add(lblAntiTanques);
       pnSoldadosAEnviar.add(txtAntiTanques);
       pnSoldadosAEnviar.add(lblMedicos);
       pnSoldadosAEnviar.add(txtMedicos);
       pnSoldadosAEnviar.add(lblHelicopterosAtaque);
       pnSoldadosAEnviar.add(txtHelicopterosAtaque);
       pnSoldadosAEnviar.add(lblAvionesCaza);
       pnSoldadosAEnviar.add(txtAvionesCaza);
       pnSoldadosAEnviar.add(lblTransporteHelis);
       pnSoldadosAEnviar.add(txtTransporteHelis);
       pnSoldadosAEnviar.add(lblTransporteAvion);
       pnSoldadosAEnviar.add(txtTransporteAvion);
       add(pnSoldadosAEnviar); //cont = 3

       JPanel pnBtnEnviar = new JPanel();
       FlowLayout glbtnEnviar = new FlowLayout(FlowLayout.CENTER);
       //GridLayout glbtnEnviar = new GridLayout(1, 1, 10, 10);
       pnBtnEnviar.setLayout(glbtnEnviar);
       pnBtnEnviar.add(btnEnviar);
       add(pnBtnEnviar); //cont = 4        
   }


Hice algunos pequeños cambios anoche, para ver si lo podía solucionar, pero no ha dado resultado..
Tutto ha oceani da attraversare mentre hanno il coraggio di farlo Avventato? Ma sanno sogni di limiti

Twitter: @MauroMasciar

1mpuls0

#4
No sé que tanto te interese el espacio entre los componentes del panel pnSoldadosAEnviar, pero puedes intentar con esto pnSoldadosAEnviar.setLayout(new GridLayout(9, 2, 1, 1)); y/o hacer el jframe mas alto.

Te recomiendo que utilices la distribucion "GridBagLayout" es muy potente pero también muy compleja.

O puedes optar por un layout nulo, asi estables las coordenadas y tamaños de tus componentes.


Saludos.
abc

MauroMasciar

Intentaré GridBagLayout..
Gracias por responder...
Tutto ha oceani da attraversare mentre hanno il coraggio di farlo Avventato? Ma sanno sogni di limiti

Twitter: @MauroMasciar