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.