Galera, estou criando um Questionário em desk no netbeans é o seguinte:
1- Jlabel onde carrego as perguntas vindas do bando de dados
4- JRadioButtons onde carrego as alternativas vindas do bando de dados
Ai tenho 2 botões Next e Back, onde o usuário pode visualizar até a questão 10 e voltar até a 1° se ele quiser.
O problema é que, caso o usuário responda todas as questões, mais queira voltar para se certificar que está corretas as opções não ficam marcadas. ( è possivel isso, já que limpo essa seleção a cada pergunta?)
O ideal seria, se eu respondi todas as questões e tenho que voltar, cada vez que desse um back, ele selecionava a alternativa que o usuário escolheu. para que ele não precise escolher tudo de novo.
Segue um pedaço do código: ( Se precisarem das classes só me avisar)
[code] private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Respostas resp = new Respostas();
if(contador ==1){
if(jRadioButton1.isSelected())
resp.setQuest1(this.jRadioButton1.getText());
if(jRadioButton2.isSelected())
resp.setQuest1(this.jRadioButton2.getText());
if(jRadioButton3.isSelected())
resp.setQuest1(this.jRadioButton3.getText());
if(jRadioButton4.isSelected())
resp.setQuest1(this.jRadioButton4.getText());
//aqui insere no banco a resposta.
insereNobanco(resp.getQuest1());
}
if(contador ==2){
if(jRadioButton1.isSelected())
resp.setQuest2(this.jRadioButton1.getText());
if(jRadioButton2.isSelected())
resp.setQuest2(this.jRadioButton2.getText());
if(jRadioButton3.isSelected())
resp.setQuest2(this.jRadioButton3.getText());
if(jRadioButton4.isSelected())
resp.setQuest2(this.jRadioButton4.getText());
//aqui insere no banco a resposta.
insereNobanco(resp.getQuest2());
}
if(contador ==3){
if(jRadioButton1.isSelected())
resp.setQuest3(this.jRadioButton1.getText());
if(jRadioButton2.isSelected())
resp.setQuest3(this.jRadioButton2.getText());
if(jRadioButton3.isSelected())
resp.setQuest3(this.jRadioButton3.getText());
if(jRadioButton4.isSelected())
resp.setQuest3(this.jRadioButton4.getText());
//aqui insere no banco a resposta.
insereNobanco(resp.getQuest3());
}
// Aqui da um limpas a opções dos radioButtons
limpaOpcao();
// TODO add your handling code here:
}
[/code]
Por que não cria um Bean e cria nele variáveis que representem as questões e, cujo valor seja o do radiobutton selecionado, algo como
//codigo aqui
String perg4 = "radio2";
//codigo aqui
@drsmachado ,
Não entendi direito pode me explicar com mais detalhes?
Quando uma opção for selecionada e o next for clicado, guarde alguma informação que permita identificar que para aquela questão o determinado jradio foi selecionado.
Pode ser por map, onde a key é a questão e o valor, a identificação do radiobutton selecionado. Assim, independente de ir e voltar, sempre haverá a marcação selecionada (se houver).
Blz, acho que deu 60%…rs
criei 2 variáveis para cara pergunta, uma registra o conteudo do Radio e o outro registra o nome do Radio selecionado.
private String resp1 = null;
private String resp2 = null;
private String resp3 = null;
private String jRadioResp1 = null;
private String jRadioResp2 = null;
private String jRadioResp3 = null;
[code]private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if (contador == 1) {
if (jRadioButton1.isSelected()) {
resp1 = jRadioButton1.getText();
jRadioResp1 = jRadioButton1.getName();
}
if (jRadioButton2.isSelected()) {
resp1 = jRadioButton2.getText();
jRadioResp1 = jRadioButton2.getName();
}
if (jRadioButton3.isSelected()) {
resp1 = jRadioButton3.getText();
jRadioResp1 = jRadioButton3.getName();
}
}
if (contador == 2) {
if (jRadioButton1.isSelected()) {
resp2 = jRadioButton1.getText();
jRadioResp2 = jRadioButton1.getName();
}
if (jRadioButton2.isSelected()) {
resp2 = jRadioButton2.getText();
jRadioResp2 = jRadioButton2.getName();
}
if (jRadioButton3.isSelected()) {
resp2 = jRadioButton3.getText();
jRadioResp2 = jRadioButton3.getName();
}
}
if (contador == 3) {
if (jRadioButton1.isSelected()) {
resp3 = jRadioButton1.getText();
jRadioResp3 = jRadioButton1.getName();
}
if (jRadioButton2.isSelected()) {
resp3 = jRadioButton2.getText();
jRadioResp3 = jRadioButton2.getName();
}
if (jRadioButton3.isSelected()) {
resp3 = jRadioButton3.getText();
jRadioResp3 = jRadioButton3.getName();
}
}[/code]
Só que e agora? como seria o método que verificar qual radio foi selecionado e o selecione novamente quando der um back coisa do tipo.
[code]public void buscaResp(){
if(contador == 1){
//aqui contém o nome da Radio selecionado na pergunta1 ex:jRadioButton1.
jRadioResp1
}
if(contador == 2){
jRadioResp2
}
if(contador == 3){
jRadioResp3
}[/code]
Por isso sugeri o Map<String, String>…
Você terá que verificar em que tela está (resp) e, então, verificar qual o conteúdo da variável correspondente
if(resp2.equals(radio3)){
radio3.setSelected(true);
}
@drsmachado
Vou precisar ler um pouco sobre Map não faço a minima idéia de como fazer ou de como funciona.
Mesmo assim Vlw.
Basicamente
Map<String, String> mapa = new HashMap<String, String>();
if(radio3.isSelected()){
mapa.put("perg2", radio3.getText());
}
//lógica
if(mapa.containsKey("perg2")){
if(mapa.get("perg2").toString().equals(radio3.getText()){
radio3.setSelected(true);
}
}
É isso…
Puts SInistro!..
Valew funcionou certinho.