Amigos uso NetBeans ( Swing ) gostaria de pressionar F8 e fechar o JFrame, fiz o seguinte código.
rss mais imaginam.,.não fechou… oque poderia estar errado.?
private void formKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
     if (evt.getKeyCode() ==KeyEvent.VK_F8) {
       this.dispose();
    }
    
} 
Obrigado a quem puder ajudar.
         
         
           
        
            
            
            
         
         
             
             
          
       
      
        
        
          A sua tela tem vários componentes? 
Se sim desse jeito vc vai ter que colocar um keypressed em cada componente ou fazer isso:
public class Teste extends JFrame {
   private int num = 0;
      public Teste(){
       JButton um = new JButton("um");
       um.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e) {
               num++;
               System.out.println("um " + num);
           }
       });
       JButton dois = new JButton("dois");
       dois.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e) {
               num++;
               System.out.println("dois " + num);
           }
       });
              InputMap inputMap = dois.getInputMap(JButton.WHEN_IN_FOCUSED_WINDOW);
       KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, 0);
       inputMap.put(enter, "teste");
       dois.getActionMap().put("teste", new ClickAction(dois));
              um.setBounds(10, 10, 80, 30);
       dois.setBounds(90, 90, 80, 30);
              add(um);
       add(dois);
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setLayout(null);
       setSize(400, 400);
       setVisible(true);
   }
      public class ClickAction extends AbstractAction {
       private JButton button;
       public ClickAction(JButton button) {               this.button = button;
       }
       public void actionPerformed(ActionEvent e) {               button.doClick();}
   }
   public static void main(String[] args) {
       Teste teste = new Teste();
   }
}  
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Fazer a cada componente também não é uma boa idéia.
O melhor é usar o InputMap. Basta subtituir seu código por isso aqui:
KeyStroke stroke = KeyStroke.getKeyStroke("F8");
Action actionListener = new AbstractAction() {
public void actionPerformed(ActionEvent actionEvent) {
    dispose();
   }
};
InputMap inputMap = rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(stroke, "CLOSE");
rootPane.getActionMap().put("CLOSE", actionListener);
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            ambuzr  
            
           
           
          
              
                Agosto 12, 2008, 12:15pm
               
               
          #4 
           
         
        
          valeu vini tambem tava atras dessa dica deu certin aqui no NetBeans
fiz assim, criei um metodo chamdo fechar
[code] 
public void fechar(){
    KeyStroke stroke = KeyStroke.getKeyStroke("F8");
 
actionListener = new AbstractAction() { 
public void actionPerformed(ActionEvent actionEvent) { 
JOptionPane.showMessageDialog(null, “Voce apertou uma tecla”); 
} 
}; 
InputMap inputMap = rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); 
inputMap.put(stroke, “CLOSE”); 
rootPane.getActionMap().put(“CLOSE”, actionListener); 
}[/code]
então depois de initComponents coloquei assim, não esqueça de importar as classes q ele precisa o netbeans diz quais são
[code]public principal() { 
initComponents();
    fechar();// SO FIZ CHAMAR O METODO QUE CRIEI
    }[/code]
 
Brigadão novamente tava doido atras dessa dica, ia colocar um KeyEvent em todos os meus botões e campos maior gambiarra 
:lol:
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            ambuzr  
            
           
           
          
              
                Agosto 12, 2008,  7:51pm
               
               
          #5 
           
         
        
          encontrei dessa forma
[code]public void verificarF8(){
getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(“F8”), “fireDoFindNext”); 
getRootPane().getActionMap().put(“fireDoFindNext”, new AbstractAction(“fireDoFindNext”) { 
// The next two lines should be in one line 
public void actionPerformed(ActionEvent evt) { 
System.out.println(“F8”); 
} 
} 
);
  }
 
[/code]
porem como e que eu faço pra cada tecla uma ação, por exemplo, precissonar F2 mostrar System.out.println(“F2”)  e   precissonar F8 mostrar System.out.println(“F8”)  ?
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Só uma dúvida estou executando esse código do ViniGodoy, ta funcionando blz, mas se o foco estiver em uma JTable ai não funciona alguem sabe por que?
Obrigado…