Configuração de Componentes

4 respostas
rochribre

Alguem sabe se existe alguma forma de aplicar diversas funções em um componente sem repitir seu nome ex:

Hoje quando preciso configurar um JComboBox eu faço da seguinte maneira:

jComboBox.removeAllItems();
jComboBox.enable(true);

etc…

Queria digitar apenas uma vez o jComboBox e aplicar diversas configurações em cima, estou perguntando porque existem outras linguagem que me dão essa condição.

4 Respostas

ignacio83

Algumas classes no java possuem esse tipo de abordagem, porém não é caso da classe JComboBox.

Um bom exemplo é o método append do StringBuilder. Como o método retorna o próprio StringBuilder, dá pra fazer coisas desse tipo

StringBuilder sb = new StringBuilder();
sb.append("G").append("U").append("J").toString();
rochribre

Legal.

Obrigado.

Marcelo_FS

Na prática:

JComboBox combo = new JComboBox(){
   {  
       removeAllItens();
       setEnabled(false);
       // etc
   }
};

Na teoria: você cria uma subclasse de JComboBox (as chaves de fora), adicionando um construtor que sempre será chamado (as chaves de dentro), onde você define o que quer.

É uma sintaxe útil pra criar interfaces, desde que você não abuse… ou pode acabar com algo inelegível como…

JFrame frame = new JFrame(){{
         add( new JPanel(){{
               add( new JLabel("Hey there"){{ 
                    setBackground(Color.black);
                    setForeground( Color.white);
                }});

                add( new JButton("Ok"){{
                    addActionListener( new ActionListener(){
                        public void actionPerformed( ActionEvent ae ){
                            System.out.println("Button pushed");
                        }
                     });
                 }});
        }});
    }};

:roll:

rochribre

Mas eu ja tenho criado o JComboBox, e queria que essas alterações fossem feita em tempo de execução.

Criado 19 de dezembro de 2008
Ultima resposta 19 de dez. de 2008
Respostas 4
Participantes 3