Como Executar o conteúdo de uma Variável como Objeto

Boa Noite galera.

Estou com o seguinte problema. Não sei como pesquisar para ter a solução. Se alguém souber do que eu estou tentando falar e poder me ajudar agradeço.

Vamos lá

Tenho um programa que um determinado cliente irá marcar uma checkbox dentre outras 12, então eu construi todas checkbox na seguinda forma de nomes jBoxQ1, jBoxQ2, jBoxQ3, jBoxQ4, jBoxF1, jBoxF2, jBoxF3, jBoxF4, jBoxS1,jBoxS2, jBoxS3, jBoxS4.

e com isso, em outra função, eu preciso saber qual checkbox o cliente marcou, então eu criei uma função que passa somente as 2 ultimas letras de cada check box, por exemplo.

TestaCheckBox(“Q1”);

e na minha função eu concateno com “jBox” ficando jBoxQ1 assim
String obj = “jBox” + var;

porem gostaria de testar o conteudo da variavel e não a varia obj por exemplo ficando assim.

if (var.isSelected()) {


}
porem gostaria que o java pegasse o que ta dentro de var (existe algum comando pra isso ?)

como disse não sei como pesquisar isso na internet.

Desde já

Agradeço a ajuda de todos.

Christian

Imagino que seu método TestaCheckBox seja mais ou menos assim:

boolean TestaCheckBox(String nome) {
  /* ... */
}

Você poderia criar um HashMap.

import javax.swing.*;
import java.util.HashMap;

public class Program {
    static HashMap<String, JCheckBox> map = new HashMap<>();

    static JCheckBox jBoxQ1 = new JCheckBox();
    static JCheckBox jBoxQ2 = new JCheckBox();
    static JCheckBox jBoxQ3 = new JCheckBox();

    public static void main(String[] args) {
        map.put("Q1", jBoxQ1);
        map.put("Q2", jBoxQ2);
        map.put("Q3", jBoxQ3);
    }

    static boolean TestaCheckBox(String nome) {
        if ( map.get(nome).isSelected() ) {
            /* ... */
            return true;
        }

        return false;
    }
}

Ou você poderia mudar o seu método para aceitar direto a checkbox.

boolean TestaCheckBox(JCheckBox box) {
  /* ... */
}

Qualquer coisa, posta a definição completa do seu método e um exemplo do contexto (de preferencia funcional) em que ele é usado.

1 curtida

Amigo, Muito Obrigado por responder.

Eu estava passando uma string para concatenar do outro lado, porém um amigo do meu filho me deu a ideia de passar os objetos direto no parametro, então não precisarei criar os nomes.

TestaCheckBox(javax.swing.JCheckBox jBoxQ1, javax.swing.JTextField jTextQ1);

assim poderei verificar onde devo ou não bloquear o textfield para edição, caso seja desmarcado/marcado.

1 curtida

Obrigado pela oportunidade deste maravilhoso conhecimento. Algum moderador poderia colocar como resolvido.

Desde já

Christian