Boa tarde pessoal, não sei se tem como, mas alguém sabe me responder se eu consigo recuperar o nome de um JPanel?
E que tenho um probleminha :
Tenho uma tela (A) e uma tela(B), a tela A passa um parametro como string para a tela B pra eu poder setar na tela B o problema e o seguinte tenho varios metodos que devem fazer isso, mas o retorno deles pra tela B tem que se uma String só que diferente. Então quando passo a String da tela A para a tela B ele subentende que todos meus metodos (que também passam String) que são iguais, entrando no mesmo construtor da tela B.
Preciso diferenciar isso, mas se tiver como recuperar o nome de um Jpanel ja resolve meu problema, pq ai seto ele como String e consigo recupera-lo na tela b.
JPanel Ajuda URGENTE AJUDA AI VAI
8 Respostas
Para isso o JPanel tem o método getName(). Mas cuidado, não basta só dar um nome à variável do JPanel, você também precisa chamar o método setName.
Outra coisa, evite títulos mendigando ajuda, com “AJUDA AI”, “URGENTE”, e com letras maiúsculas. Fica dando a impressão que vc quer chamar mais atenção do que os demais, o que fere as regras da boa netiqueta.
Desculpa ai pela letras MAIUSCULAS foi mau…
Eu ja tentei com o getName(), mas quando estou no construtor da outra tela ele não me da a opção de setName()…???
Se você estiver usando o netbeans, existe uma propriedade “name” no seu JPanel.
Se não estiver usando, no constroi o JPanel, faça o setName.
Também ajudaria se você postasse aqui o trecho de código onde está com problema.
private void jBSalvarActionPerformed(java.awt.event.ActionEvent evt) {
if (jRBCG_1.isSelected() == true) {
Aplicacao ap = new Aplicacao(jRBCG_1.getText().trim(),jPPrimeiraDose.getName().trim(), true);
ap.setLocationRelativeTo(null);
ap.setVisible(true);
} else if (jRBCG_2.isSelected() == true) {
Aplicacao ap = new Aplicacao(jRBCG_2.getText().trim(), true);
ap.setLocationRelativeTo(null);
ap.setVisible(true);
} else if (jRHepatiteB_2.isSelected() == true) {
Aplicacao ap = new Aplicacao(jRHepatiteB_2.getText().trim(), true);
ap.setLocationRelativeTo(null);
ap.setVisible(true);
}
Estou passando dois parametros para a outra tela, e neste segundo preciso do nome do meu JPanel pq cada if/else tem um nome diferente.
CONTRUTOR DA SEGUNDA TELA :
public Aplicacao(String trim, String name, boolean b) {
this.insert = insert;
jTTipo_Vacina.setText(trim);
jTTipo_Dose.setText(name);
jTData.setText(getDate());
setLocationRelativeTo(null);
}
Na verdade, ainda não entendi exatamente seu problema…
Bom vou tentar melhorar, então tenho uma tela A que tem um Button que quando clico nele pra salvar ele chama a outra tela B, nesta tela B preciso passar pra ela dois parametros, 1° e o tipo da vacina, que como esta em um jRadioButon ja o fiz, funciona tranquilo, no 2° o parametro que preciso passar e o nome do JPanel, ja passei ele como String, mas tenho varios if / else e cada um deles tem o nome diferente, então quando passo ele como String ele chama o mesmo construtor na tela B e me mostra o mesmo nome para todos o que não quero.
Então o meu problema e o seguinte passar o 2° argumento que e o nome do JPanel, tentei como vc disse : (TELA A)
Aplicacao ap = new Aplicacao(jRBCG_1.getText().trim(),[color=red]jPPrimeiraDose.getName()[/color], true);
Mas no construtor da TELA B ele não me da a opção de setar este getName em um TTextField.
Será que consegui te explicar melhor agora ?
E Mai uma vez obrigado pela atenção.
Por que não passa o Jpanel inteiro?
E por que não acrescenta o que você precisa no construtor?
ViniGodoy , obrigado pela sua ajuda… fiz o que vc me sugeriu passei o JPanel todo e agora funciona da forma que queria, muito obrigado pela ajuda, e desculpa ai qualquer coisa… 