Alguem me ajuda a fazer esse metodo ter retorno coisa simples plz

7 respostas
M

Vou falar meu problema se vcs n entender é so avisar, eu tenho um metodo que seta o look and fell no meu form,
mas cada tela que tenho rpeciso re-fazer esse método no fim das conta vai da uma redundancia de codigo como faco uma classe para mim poder apenas xamar esse metodo contendo os retornos veja aonde nasceu esse meu problema

public void mudaAparencia(String aparencia)
    {
        try
        {
            UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
            SwingUtilities.updateComponentTreeUI(this);
        }
        catch (InstantiationException e)
        {
            e.printStackTrace();
        }
        catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        catch (UnsupportedLookAndFeelException e)
        {
            e.printStackTrace();
        }
        catch (IllegalAccessException e)
        {
            e.printStackTrace();
        }
    }

com esses 2 argumentos
protected static final String mac = "com.birosoft.liquid.LiquidLookAndFeel";
protected static final String kunststoff = "com.incors.plaf.kunststoff.KunststoffLookAndFeel";

ai quando eu quero uma aparencia escolho entre mac ou kunstoff mas como faço uma classe com um retorno para mim invez de digitar todo esse codigo formulario por formulario eu apenas botar isso em qualquer formulario (Exemplo: template(mac) ou template(kunstoff) e ele ja setar o template!
se ficar confuso posso re-explicar vlw é que sou iniciante em java e primeira vez q estou manipulando lookandfeel!
Muitissimo obrigado pela atenção! :roll:

7 Respostas

lelodois

Você passa uma String chamada aparencia e não faz uso dela, de qualquer forma coloque um método que chama este método, e pelo que entendi é só retornar o objeto com uma nova aparência, certo?

para mim poder apenas xamar is pt_br? rs

Matheus_Leandro_Ferr

Você pode fazer de varias formas, segue algumas…

1ª forma:

Criar uma classe abstrata (abstract class Aparencia) contendo este método. Nas classes que você quer fazer uso deste método, basta estender (em java extends) e sobreescreva o método. Utilize ela chamando super.mudaAparencia(aparencia);

2ª forma:

Crie uma interface contendo o método e implementa essa interface na classe que você usara o método. Depois só sobreescreve-lo da maneira como quiser.

Bom, + ou - por ai…

Marky.Vasconcelos

UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel"); SwingUtilities.updateComponentTreeUI(this);

Voce não precisa repetir isso em todas as telas… o método updateComponentTreeUI seta o L&F do componente que voce passou e de todos os seus filhos (todos componentes adicionados). No seu sistema eu acho que voce deve ter uma tela principal que chama seus “filhos” para aparecerem por meio de ações. É só usar esse código no frame principal que todo o resto vai estar com a nova aparencia.

Marky.Vasconcelos

Por que voce posta isso por todo canto?

M

pq ele é meio alucinado rsrsrsrsrs

M

lelodois exato.

Matheus, no meu caso essa minha classe ja extende de outra classe n posso extender 2 classes correto?

Mark_Ameba, o que devo fazer na tela principal para poder chamar em outras classes ?

Marky.Vasconcelos

Como esta sua aplicação?
Vou usar como exemplo uma minha

Tenho um JFrame chamado Genesis que é a janela principal. Nela eu adiciono varios JInternalFrames que ficam invisivel até uma ação setalos como visivel.

Nessa arvore (treeUI que se refere o método) seria isso

Genesis

internalFrame1

um nivel abaixo da arvore esta os componentes da interalFrame1 e pra baixo os componentes dos componentes e assim vai.
internalFrame2
componentes… blah blah xD

Se eu seto o L&F para o Component Genesis toda a arvore vai ser atualizada.

É assim que funciona.

Criado 2 de abril de 2009
Ultima resposta 2 de abr. de 2009
Respostas 7
Participantes 4