Para darle un poco mas de caché a nuestras aplicaciones les mostraré código para cerrar un JDialog presionando la tecla ESC. Este ejemplo da para eso y mucho mas, ya depende de ustedes.
Primero necesitamos esta clase que es la que cacha los eventos del teclado:
Primero necesitamos esta clase que es la que cacha los eventos del teclado:
/** * @JaverosAnonimos on Twitter */ public class KeyListenerCustom implements KeyListener{ private JDialog dialog=null; public KeyListenerCustom(JDialog dialog){ System.out.println("Dialog!"); this.dialog=dialog; } public void keyTyped(KeyEvent e) { System.out.println("Tecla apretada"); } public void keyPressed(KeyEvent e) { System.out.println("entro"); if(e.getKeyCode()==27) {//27 es el código de la tecla esc System.out.println("Adios!"); dialog.setVisible(false); } } public void keyReleased(KeyEvent e) { System.out.println("Después de soltar la tecla!"); } }Y para probar esta clase un ejemplo de un JDialog implementandolo:
public class EjemploESC extends javax.swing.JDialog { /** Creates new form InformacionDialog */ public EjemploESC(java.awt.Frame parent, boolean modal,String name) { super(parent, modal); initComponents(); setTitle("Ejemplo cerrar con telca ESC"); jPanel1.grabFocus(); jPanel1.addKeyListener(new KeyListenerCustom(this)); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") //Nota: Disculpen en chorote del ejemplo pero este código fue generado con NetBeans si quiren descargar el fuente pueden hacerlo aquíprivate void initComponents() { jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); jPanel1.setName("jPanel1"); // NOI18N jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel1.setText("www.JaverosAnonimos.tk "); jLabel1.setName("jLabel1"); // NOI18N jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel2.setText("http://JaverosAnonimos.blogspot.com"); jLabel2.setName("jLabel2"); // NOI18N jLabel3.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel3.setText("Presiona ESC para cerrar"); jLabel3.setName("jLabel3"); // NOI18N javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 331, Short.MAX_VALUE) .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 331, Short.MAX_VALUE) .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 331, Short.MAX_VALUE)) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1) .addGap(63, 63, 63) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 78, Short.MAX_VALUE) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); pack(); }// /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { EjemploESC dialog = new EjemploESC(null, true,""); dialog.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; // End of variables declaration }
donde esta la descarga xD
ResponderBorrarPues estaba ahí... O_o Lo subiremos mas tarde gracias por avisar.
ResponderBorrarLo siento pero perdimos el proyecto, aunque ahí esta el código :) Saludos
ResponderBorrarMALASO... Cuando lo cierro, sigue encendido en el eclipse, eso quiere decir que sólo está oculto pero no sea cerrado por completo...
ResponderBorrarPublicar un comentario