Para el siguiente codigo:
Código:
package CalculadoraNotas;
import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
/**
*
* @author Édison Jair Lizcano
* @version 1.0
*
*/
public class Interfaz extends JFrame implements ActionListener{
private Choice LParciales=new Choice();
private Choice LQuizs=new Choice();
private Choice LTrabajos=new Choice();
private Choice LPParciales=new Choice();
private Choice LPQuizs=new Choice();
private Choice LPTrabajos=new Choice();
private JPanel panel=new JPanel();
private JPanel panelB=new JPanel();
private JPanel panelC=new JPanel();
private JButton generar=new JButton("Generar formulario");
private JTextField estudiante=new JTextField("Nombre estudiante");
private JTextField materia=new JTextField("Materia");
private JLabel EEstudiante=new JLabel("Estudiante: ");
private JLabel EMateria=new JLabel("Materia: ");
public Interfaz(){
this.setTitle("Calculadora de notas");
this.setLayout(new BorderLayout());
this.setLocation(500, 100);
this.setSize(300,220);
}
public void generarContenido(){
panel.setLayout(new GridLayout(2,2));
panel.setBorder(new TitledBorder("Información de usuario"));
panelB.setLayout(new BorderLayout(3,3));
panelB.setBorder(new TitledBorder("Cantidad de evaluativos"));
panelC.setLayout(new BorderLayout());
panelC.setBorder(new TitledBorder("Porcentajes(%) de evaluativos"));
for(int i=0;i<=100;i=i+5){
LPParciales.add(String.valueOf(i));
LPQuizs.add(String.valueOf(i));
LPTrabajos.add(String.valueOf(i));
}
for(int i=1;i<=10;i++){
LParciales.add(String.valueOf(i));
LQuizs.add(String.valueOf(i));
LTrabajos.add(String.valueOf(i));
}
LParciales.select(2);
LQuizs.select(3);
LTrabajos.select(1);
LPParciales.select(9);
LPQuizs.select(6);
LPTrabajos.select(4);
panel.add(EEstudiante);
panel.add(estudiante);
panel.add(EMateria);
panel.add(materia);
panelB.add(LParciales,"West");
panelB.add(LQuizs,"Center");
panelB.add(LTrabajos,"East");
panelC.add(LPParciales,"West");
panelC.add(LPQuizs,"Center");
panelC.add(LPTrabajos,"East");
panelC.add(generar,"South");
this.add(panel,"North");
this.add(panelB,"Center");
this.add(panelC,"South");
}
public void mostrarVentana(){
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
}
}
Una interfaz sencilla, para resultado:
Interfaz
El problema radica en los metodos de posicionamiento, como se visualiza los objetos tienden a acoplarse al tamaño maximo en el que se posiciona, ¿como podria solucionar ello?.
¿Por ultimo utilizar de nuevo GridBagLayout?.