import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Frame3 extends JFrame implements ActionListener //frame3 hereda de JFrame e implementa un ActionListener { JLabel answer = new JLabel("Texto"); //creamos una etiqueta que aparecera en el programa JPanel pane = new JPanel(); //creamos un panel con el nombre pane del tipo JPanel JButton pressme = new JButton ("Contenido botn"); //creamos un boton con el texto press me Frame3() //constructor del frame { super ("Demo"); //titulo de la ventana creada setBounds(100, 100, 300, 200); //tamao de la ventana setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //termina el programa al cerrar la ventana Container con = this.getContentPane(); //obtiene el panel principal sobre el cual aadiremos nuestros componentes con.add(pane); //aadimos el panel al contenedor declarado arriba pressme.setMnemonic('P'); //al botn press me le asignamos la hotkey P (Alt + P) lo presiona pressme.addActionListener(this); //al botn press me le aadimos el listener, ponemos this ocmo parametro porque buscara en esta misma clase la operacion ActionPerformed y luego resolvera que hacer dependiendo de lo que alli diga pane.add(answer); //metemos el label answer en el panel pane.add(pressme); //metemos el botn pressme en el panel pressme.requestFocus(); //el botn pressme obtiene el focus, es decir, aparece preseleccionado para poder ser ejecutado desde teclado setVisible(true); //hace la ventana visible } public void actionPerformed(ActionEvent event) //cuando el boton sea oprimido, se ejecutara lo que sigue { Object source = event.getSource(); //a source se le asigna el lugar desde donde se produjo el evento (por ejemplo, cual de los botones fue oprimido y como consecuencia se lleg a estas lneas de cdigo que siguen if (source == pressme) //si el origen del hecho fue originado por pressme, entonces... { answer.setText("Button pressed!");//el label answer dir ahora Button pressed! JOptionPane.showMessageDialog(null, "Mensaje", "Titulo",JOptionPane.PLAIN_MESSAGE); //se abrir una ventana con un mensaje, un ttulo y dems setVisible(true); //el cuadro de dialogo se hace visible } } public static void main (String [] args) //metodo main del programa (desencadenante) { new Frame3(); } }