Código:
Una interfaz sencilla, para resultado: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) { } }
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?.