En esta entrada os dejo un sencillo ejemplo del uso de varios componentes Swing que podemos añadir a nuestros formularios. Los componentes usados son:
- JButton.
- JLabel.
- JTextField.
- JPasswordField.
He usado los métodos más comunes de estos componentes, tienen mucho más, así que si quieres hacer algo en particular, simplemente hay que investigar un poco a ver si se puede con todas las opciones que ofrecen. Además, en este ejemplo no he trabajado con "Layouts" (hablaré brevemente de ellos y pondré ejemplos de varios en la próxima entrada), sino que los componentes se han colocado en el formulario mediante coordenadas.
@SuppressWarnings("serial")
public class ComponentesFormI extends JFrame {
//Componentes del formulario
private JButton cerrarButton, activarButton;
private JLabel nombreLabel, passwordLabel;
private JTextField nombreText;
private JPasswordField password;
public ComponentesFormI() {
initForm();
initComponents();
setVisible(true);
}
private void initForm() {
setTitle("Componentes de los formularios (I)");
setSize(640, 480);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
//Cuando se "cierre", se ejecutará el método onWindowClosing(e)
public void windowClosing(WindowEvent e) { onWindowClosing(e); }
});
setLocationRelativeTo(null);
//Para que no se pueda redimensionar
setResizable(false);
}
private void initComponents() {
cerrarButton = new JButton("Cerrar");
//Indicamos las coordenadas y las dimensiones del componente
//Cuando veamos los layouts no será necesario indicar las coordenadas
cerrarButton.setBounds(500, 380, 100, 30);
cerrarButton.setToolTipText("Al pulsarlo, se da la opción de cerrar el formulario.");
//Especificamos la tecla que puede activar este botón: Alt + C
cerrarButton.setMnemonic(KeyEvent.VK_C);
cerrarButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { onCerrarButtonActionPerformed(e); }
});
activarButton = new JButton("Activar");
activarButton.setBounds(250, 135, 100, 30);
activarButton.setToolTipText("Al pulsarlo, activa los cuadros de texto.");
activarButton.setMnemonic(KeyEvent.VK_A);
activarButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { onActivarButtonActionPerformed(e); }
});
nombreLabel = new JLabel("Nombre:");
nombreLabel.setBounds(50, 50, 150, 50);
//Para que se vea el color de fondo
nombreLabel.setOpaque(true);
nombreLabel.setBackground(Color.MAGENTA);
nombreLabel.setVerticalAlignment(JLabel.CENTER);
nombreLabel.setHorizontalAlignment(JLabel.CENTER);
passwordLabel = new JLabel("Contraseña:");
passwordLabel.setBounds(50, 200, 150, 50);
passwordLabel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
passwordLabel.setVerticalAlignment(JLabel.TOP);
passwordLabel.setHorizontalAlignment(JLabel.CENTER);
nombreText = new JTextField();
nombreText.setText("Pulsa el botón \"Activar\" para escribir tu nombre y contraseña.");
nombreText.setBounds(250, 50, 350, 50);
nombreText.setEditable(false);
password = new JPasswordField();
password.setBounds(250, 200, 350, 50);
password.setEditable(false);
//Los JFrame tienen por defecto el BorderLayout, se lo quitamos para añadir los componentes
//y que estos se muestren en las coordenadas que hemos indicado
getContentPane().setLayout(null);
//Añadimos todos los componentes al formulario
getContentPane().add(cerrarButton);
getContentPane().add(activarButton);
getContentPane().add(nombreLabel);
getContentPane().add(passwordLabel);
getContentPane().add(nombreText);
getContentPane().add(password);
}
protected void onActivarButtonActionPerformed(ActionEvent e) {
nombreText.setEditable(true);
nombreText.requestFocus();
nombreText.selectAll();
password.setEditable(true);
}
protected void onCerrarButtonActionPerformed(ActionEvent e) {
cerrar();
}
protected void onWindowClosing(WindowEvent e) {
cerrar();
}
private void cerrar() {
//Cuadro de diálogo para preguntar al usuario si desea salir
int respuesta = JOptionPane.showConfirmDialog(this, "¿Está seguro de que quiere salir?", "Salir", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (respuesta == JOptionPane.YES_OPTION) {
dispose();
}
}
}
Y... ¡tachán! Así es como ha quedado el formulario:
Después de pulsar el botón "Activar":


No hay comentarios:
Publicar un comentario