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