Capturar delete

Buenas!

pessoal é o seguinte, estou desenvolvendo um aplicativo que deve poder jogar elementos em um panel, movimenta-los e apaga-los.
Estava tudo indo certo até agora…
Meu problema é, tenho um jpanel dentro de um jframe, gostaria de saber como capturar quando a tecla delete for pressionada. Pode ser tanto no jframe ou no jpanel, tanto faz, só preciso de uma luz de como capturar essa tecla.
Já tentei por KeyPressed e por outras formas que vi na net mas não deu em nada.

até +

[quote=mss]Buenas!

pessoal é o seguinte, estou desenvolvendo um aplicativo que deve poder jogar elementos em um panel, movimenta-los e apaga-los.
Estava tudo indo certo até agora…
Meu problema é, tenho um jpanel dentro de um jframe, gostaria de saber como capturar quando a tecla delete for pressionada. Pode ser tanto no jframe ou no jpanel, tanto faz, só preciso de uma luz de como capturar essa tecla.
Já tentei por KeyPressed e por outras formas que vi na net mas não deu em nada.

até +

[/quote]
Coloca um listener no JPane para ouvir teclas:

meuJPane.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { if(evt.getKeyCode() == java.awt.event.KeyEvent.VK_DELETE){ System.out.println("Pressionou delete"); } } });

javer, eu testei isto, funciona até o momento em que eu jogo algum componente na tela,
se eu adicionar por ex, um JButton no meu panel com um action do mouse tudo para de funcionar.

meuJPane.addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyPressed(java.awt.event.KeyEvent evt) {
	if(evt.getKeyCode() == java.awt.event.KeyEvent.VK_DELETE){
	    System.out.println("Pressionou delete");
	}                
    }
});

JButton botao = new JButton("teste");
botao.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                System.out.println("Mouse clicked");
            }
        });
meuJPane.add(botao);

alguma dica?

abraço

eu sempre fiz assim sempre funcionou

[code]@Override
protected JRootPane createRootPane() {
JRootPane rootPane = new JRootPane();
KeyStroke strokeF10 = KeyStroke.getKeyStroke(“F10”);

    Action actionF10 = new AbstractAction() {

        public void actionPerformed(ActionEvent actionEvent) {
            //seu codigo
        }
    };

  
    InputMap inputMap = rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    inputMap.put(strokeF10, "F10");
    rootPane.getActionMap().put("F10", actionF10);
   
    return rootPane;
}[/code]

ai vc troca do F10 para DELETE

[quote=worldfernando]eu sempre fiz assim sempre funcionou

[code]@Override
protected JRootPane createRootPane() {
JRootPane rootPane = new JRootPane();
KeyStroke strokeF10 = KeyStroke.getKeyStroke(“F10”);

    Action actionF10 = new AbstractAction() {

        public void actionPerformed(ActionEvent actionEvent) {
            //seu codigo
        }
    };

  
    InputMap inputMap = rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    inputMap.put(strokeF10, "F10");
    rootPane.getActionMap().put("F10", actionF10);
   
    return rootPane;
}[/code]

ai vc troca do F10 para DELETE[/quote]

Era exatamente isto que eu estava procurando…
foi só substituir/sobrescrever o createRootPane no meu JFrame que funcionou blz

Obrigado pessoal

Abraço!