Modificar as propriedades de um componente construindo o nome dele através de concatenação de string

5 respostas
brothermclaud

Olá pessoal,

Gostaria de saber como eu poderia alterar uma propriedade de um componente já existente no meu JForm acessando essa propriedade através de uma concatenação de strings. Vou exemplificar pra ser mais compreensível:

Tenho 4 jLabels no meu jForm: jLabel11, jLabel12, jLabel21 e jLabel22.
Tenho dois jComboBoxes: jComboBox1 e jComboBox2.

Gostaria de fazer algo do tipo

e o resultado dessa “ação” seria:
[list]se nos dois ComboBox estivessem selecionados o segundo item de cada um, o resultado seria igual ao do comando jLabel11.setText(“Olá”);[/list]
[list]se nos dois ComboBox estivessem selecionados o terceiro item de cada um, o resultado seria igual ao do comando jLabel22.setText(“Olá”);[/list]
e assim por diante

Será que alguém tem alguma idéia?

5 Respostas

cassio

Amigo, entendi mais ou menos o que vc quer… mas quando vc fala em “resultado”, o que seria exatamente esse resultado?! Vc setaria um texto onde exatamente!?

B

Olá,

Você pode utilizar o setName(String) e o getName() presente em todos objetos swing que herdam Component.
Para pegar os objetos pelo nome você usuaria getComponents() e getComponentCount().

Por exemplo:

Aplicado um loop utilizando getComponents() você poderia pegar um objeto que atendesse as seguintes condições:

obj.getName().equals( jLabel + jComboBox1.getSelectedIndex() + jComboBox2.getSelectedIndex() );

e depois aplicar oq quiser a esse objeto que atenda a essas condições.

t+

dudaskank

Tem uma forma bem mais simples de se fazer isso: matriz!

Crie e coloque os labels numa matriz, algo assim:

JLabel jLabels[2][2];
// instancie os bichos e daí é  fazer
int i1 = jComboBox1.getSelectedIndex();
int i2 = jComboBox2.getSelectedIndex();
jLabels[i1][i2].setText("olá");

Beleza? Falou

brothermclaud

Olá Bob,

Gostei muito da sua dica, mas não estou conseguindo implemetá-la.

No teu exemplo obj herda de onde? O loop com os componentes eu sei fazer, mas não consigo referenciar o obj do teu exemplo com algum objeto que eu conheça.
HELP ME!

brothermclaud

Oi Dudas,
Como posso fazer isso usando o NetBeans?

Criado 21 de setembro de 2006
Ultima resposta 21 de set. de 2006
Respostas 5
Participantes 4