http://developer.java.sun.com/developer/JDCTechTips/2001/tt1220.html
JInternalFrame Modal
M
2 Respostas
Da para fazer assim:
// Codigo para Modal
static class ModalAdapter
extends InternalFrameAdapter {
Component glass;
public ModalAdapter(Component glass) {
this.glass = glass;
MouseInputAdapter adapter = new MouseInputAdapter(){};
glass.addMouseListener(adapter);
glass.addMouseMotionListener(adapter);
}
public void internalFrameClosed(
InternalFrameEvent e) {
glass.setVisible(false);
}
}
// Fim para Modal
ai voce chama o jinternalframe assim:
public void actionPerformed(ActionEvent e) {
Cadastro_Academico Cadastro = new Cadastro_Academico();
JPanel glass = new JPanel();
glass.setLayout(null);
glass.setOpaque(false);
Cadastro.addInternalFrameListener(new ModalAdapter(glass));
glass.add(Cadastro);
setGlassPane(glass);
Cadastro.getContentPane();
glass.setVisible(true);
Cadastro.setVisible(true);
}
};
jButton1.addActionListener(showModal1);
t+
A
Na minha opnião, essa é a melhor maneira pra trabalhar com internalframe modais.
únicos problemas :
- o usuário não consegue fechar o deskstoppane.
- não dá pra colocar um botão default. Mas isso é fácil, acho que criar um keylistener resolve o problema …
Devia ter um setModal() em InternalFrame, não acham ?
Criado 23 de junho de 2003
Ultima resposta 18 de ago. de 2004
Respostas 2
Participantes 3