Classe e Métodos genéricos para estes métodos

4 respostas
robertwgil
Olá, tenhos varios metodos deste tipo.
public static void mostre_tela_SelecioneAssunto() {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                telaSelecioneAssunto = new SelecioneAssunto();
                telaSelecioneAssunto.setModal(true);
                RotinasGeraisDeGUI.centralizar(telaSelecioneAssunto);                                
                telaSelecioneAssunto.setVisible(true);
            }
        });                            
    }      
    
    public static void mostre_tela_InformeObjetivoDaDecisao() {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                telaInformeObjetivoDaDecisao = new InformeObjetivoDaDecisao();                              
                telaInformeObjetivoDaDecisao.setModal(true);
                RotinasGeraisDeGUI.centralizar(telaInformeObjetivoDaDecisao);                                
                telaInformeObjetivoDaDecisao.setVisible(true);
            }
        });                            
    }      
    
    public static void mostre_tela_InformeEscopoDaDecisao() {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                telaInformeEscopoDaDecisao = new InformeEscopoDaDecisao();                              
                telaInformeEscopoDaDecisao.setModal(true);
                RotinasGeraisDeGUI.centralizar(telaInformeEscopoDaDecisao);                                
                telaInformeEscopoDaDecisao.setVisible(true);
            }
        });                            
    }
oque muda nos metodos são apenas os tipos das variáveis de referencia, e as classes que serão instanciadas... tem como fazer uma classe ou os metodos genericos, pq tenho cerca de 40 metodos deste tipo. espero que tenha... té mais..

4 Respostas

cv1

A construcao dos seus objetos ‘tela’ sempre funciona com construtores vazios? Se sim, da pra passar o .class da tela que vc quer mostrar, e chamar newInstance() nela. Um pouco de reflection sempre ajuda :wink:

robertwgil

o problema é q sou meio novato em java… tinhas estudado uns metodos e classes genéricas aqui mas não consegui fazer dar certo… tem como
tum dar um exemplo com codigo ai? se possivel com esses metodos ai q jah aproveito :smiley: , bom mas de certa forma obrigado pela atenção.

cv1

Da uma olhada nos javadocs da java.lang.Class, especificamente, no metodo newInstance() :wink:

robertwgil

:smiley: Resolvido… ficou assim

import javax.swing.JDialog;
public class MostrarJanela {

    public MostrarJanela(Class classe, final boolean visible){
        mostreTela(classe, visible);
    }
    
    private void mostreTela(Class classe, final boolean visible ) {
        try {
            final JDialog tela = (JDialog) classe.newInstance();
            tela.setModal(true);
            tela.setLocationRelativeTo(null);
            tela.setVisible(visible);
            
        } catch (IllegalAccessException ex) {
            ex.printStackTrace();
        } catch (InstantiationException ex) {
            ex.printStackTrace();
        }
    }
}

e pra carregar a janela ficou de boa agora…

new MostrarJanela(Cidade.class, true);
Criado 22 de outubro de 2006
Ultima resposta 22 de out. de 2006
Respostas 4
Participantes 2