JDialog modal nao funciona com KeyListener?

0 respostas
E

Ola,

OBS: Estou usando JDK5/Swing.

Eu tenho uma tela que é um JDialog. Preciso que ela seja modal=true, para que o usuario seja obrigado a fecha-la antes de voltar para a tela anterior. Dentro dela eu tenho um JList setando o KeyListener para o JDialog, ou seja…

public class JFrameBox extends JDialog implements KeyListener, MouseListener {
  ...
  public JFrameBox(...) {
    ...
    listbox.addKeyListener(this);
    listbox.addMouseListener(this);    
    ...
    setDefaultCloseOperation(HIDE_ON_CLOSE);
    setModal(true); // AQUI ESTA O PROBLEMA!!!!!!!!!!
    setResizable(false);
    setAlwaysOnTop(true);
  }
  ...

Os eventos do mouse funcionam numa boa (ex. mouseClicked). Mas os eventos do teclado nao (ex. keyPressed). Se eu comento a linha do “setModal(true)”, os eventos do teclado voltam a funcionar!

Olhei no javadoc da SUN (http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JDialog.html) mas nao encontrei nenhuma informacao sobre isso.

Alguem ja teve este problema?

No meu caso, se deixar modal=false, o usuario podera voltar pra tela anterior e vai virar uma confusao pra ele.

Criado 29 de maio de 2006
Respostas 0
Participantes 1