Contador nao funciona no quiz, ajuda! Qual o erro?

7 respostas
_
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.EmptyBorder;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ItemListener;
import java.awt.Button;
import javax.swing.AbstractAction;
import javax.swing.Action;

public class jogo extends JFrame {

	private static final Action EXIT = null;
	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_2;
	private JTextField textField_1;

	private JRadioButton rbtnNewButton;
	private JRadioButton rbtnNewButton_1;
	private JRadioButton rbtnNewButton_2;
	private JRadioButton rbtnNewButton_10;
	private JRadioButton rbtnNewButton_11;
	private JRadioButton rbtnNewButton_12;
	private JRadioButton rbtnNewButton_13;
	private JRadioButton rbtnNewButton_14;
	private JRadioButton rbtnNewButton_15;
	private JButton btnConcluir;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					jogo frame = new jogo();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public jogo() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);

		
		// OBJETIVO: Escolher tres frases aletórias para que apareçam em uma janela, com seus respectivos botoes (com as alternativas apropriadas para cada pergunta), contar
		//se o botao selecionado é a resposta correta e mostrar em uma JDialog
		String[][] frases = {
				{ "Quem leva a cura da mordida de lobsomem a Damon?" },
				{ "Qual Lobisomem Mordeu Rose?" },
				{ "O que Niklaus é de Elijah?" },
				{ "O sobrenome dos irmãos Damon e Stefan é: " },
				{ "Qual o nome da vampira Original que já namorou Stefan?" },
				{ "Quem transformou Caroline?" },
				{ "No primeiro episódio da terceira temporada quem está fazendo aniversário?" },
				{ "No primeiro episódio da quarta temporada o que Stefan dá a Elena no telhado?" },
				{ "Quem provoca o acidente de elena e Math?" } };
		int numero1, numero2, numero3;
		numero1 = (int) (Math.random() * (frases.length)); // sorteia a frase, que aparecerá na posição 1
		String palavraSorteada = frases[numero1][0];
		numero2 = (int) (Math.random() * (frases.length)); // sorteia a frase, que aparecerá na posição 2
		String palavraSorteada2 = frases[numero2][0];
		numero3 = (int) (Math.random() * (frases.length)); // sorteia a frase, que aparecerá na posição 3
		String palavraSorteada3 = frases[numero3][0];

		textField_1 = new JTextField(palavraSorteada);
		textField_1.setColumns(10);
		textField_1.setEditable(false);

		textField_2 = new JTextField(palavraSorteada2);
		textField_2.setColumns(10);
		textField_2.setEditable(false);

		textField = new JTextField(palavraSorteada3);
		textField.setColumns(10);
		textField.setEditable(false);

		rbtnNewButton = new JRadioButton("New button");

		rbtnNewButton_1 = new JRadioButton("New button");

		rbtnNewButton_2 = new JRadioButton("New button");

		rbtnNewButton_10 = new JRadioButton("New button");

		rbtnNewButton_11 = new JRadioButton("New button");

		rbtnNewButton_12 = new JRadioButton("New button");

		rbtnNewButton_13 = new JRadioButton("New button");

		rbtnNewButton_14 = new JRadioButton("New button");

		rbtnNewButton_15 = new JRadioButton("New button");

		btnConcluir = new JButton("Click me!");

		GroupLayout gl_contentPane = new GroupLayout(contentPane); // Organiza a posição dos botoes na Janela
		gl_contentPane.setHorizontalGroup(gl_contentPane
				.createParallelGroup(Alignment.LEADING)
				.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 424,
						GroupLayout.PREFERRED_SIZE)
				.addGroup(
						gl_contentPane.createSequentialGroup()
								.addComponent(rbtnNewButton).addGap(18)
								.addComponent(rbtnNewButton_1).addGap(16)
								.addComponent(rbtnNewButton_2))
				.addComponent(textField_2, GroupLayout.PREFERRED_SIZE, 424,
						GroupLayout.PREFERRED_SIZE)
				.addGroup(
						gl_contentPane.createSequentialGroup()
								.addComponent(rbtnNewButton_10).addGap(18)
								.addComponent(rbtnNewButton_11).addGap(18)
								.addComponent(rbtnNewButton_12))
				.addComponent(textField, GroupLayout.PREFERRED_SIZE, 424,
						GroupLayout.PREFERRED_SIZE)
				.addGroup(
						gl_contentPane.createSequentialGroup()
								.addComponent(rbtnNewButton_13).addGap(16)
								.addComponent(rbtnNewButton_14).addGap(18)
								.addComponent(rbtnNewButton_15))
				.addGroup(
						gl_contentPane
								.createSequentialGroup()
								.addGap(127)
								.addComponent(btnConcluir,
										GroupLayout.PREFERRED_SIZE, 102,
										GroupLayout.PREFERRED_SIZE)));
		gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(
				Alignment.LEADING).addGroup(
				gl_contentPane
						.createSequentialGroup()
						.addComponent(textField_1, GroupLayout.PREFERRED_SIZE,
								GroupLayout.DEFAULT_SIZE,
								GroupLayout.PREFERRED_SIZE)
						.addGap(7)
						.addGroup(
								gl_contentPane
										.createParallelGroup(Alignment.LEADING)
										.addComponent(rbtnNewButton)
										.addComponent(rbtnNewButton_1)
										.addComponent(rbtnNewButton_2))
						.addGap(7)
						.addComponent(textField_2, GroupLayout.PREFERRED_SIZE,
								GroupLayout.DEFAULT_SIZE,
								GroupLayout.PREFERRED_SIZE)
						.addGap(7)
						.addGroup(
								gl_contentPane
										.createParallelGroup(Alignment.LEADING)
										.addComponent(rbtnNewButton_10)
										.addComponent(rbtnNewButton_11)
										.addComponent(rbtnNewButton_12))
						.addGap(2)
						.addComponent(textField, GroupLayout.PREFERRED_SIZE,
								GroupLayout.DEFAULT_SIZE,
								GroupLayout.PREFERRED_SIZE)
						.addGap(7)
						.addGroup(
								gl_contentPane
										.createParallelGroup(Alignment.LEADING)
										.addComponent(rbtnNewButton_13)
										.addComponent(rbtnNewButton_14)
										.addComponent(rbtnNewButton_15))
						.addPreferredGap(ComponentPlacement.RELATED, 72,
								Short.MAX_VALUE)
						.addComponent(btnConcluir, GroupLayout.PREFERRED_SIZE,
								21, GroupLayout.PREFERRED_SIZE)));
		contentPane.setLayout(gl_contentPane);
		ButtonGroup grupo1 = new ButtonGroup(); // Declara os Buttons
		grupo1.add(rbtnNewButton);
		grupo1.add(rbtnNewButton_1);
		grupo1.add(rbtnNewButton_2);

		ButtonGroup grupo2 = new ButtonGroup();
		grupo2.add(rbtnNewButton_10);
		grupo2.add(rbtnNewButton_11);
		grupo2.add(rbtnNewButton_12);

		ButtonGroup grupo3 = new ButtonGroup();
		grupo3.add(rbtnNewButton_13);
		grupo3.add(rbtnNewButton_14);
		grupo3.add(rbtnNewButton_15);

		int cont = 0;
		if (palavraSorteada
				.equals("Quem leva a cura da mordida de lobsomem a Damon?")) { // Se a determinada frase aparecer na posição 1, os botoes da posição 1 assumirao outro nome.
			rbtnNewButton.setText("Elena ");
			rbtnNewButton_1.setText("Stefan");
			rbtnNewButton_2.setText("Katherine");
			if (rbtnNewButton_2.isSelected()) {
				cont++;
			}

		}
		if (palavraSorteada2
				.equals("Quem leva a cura da mordida de lobsomem a Damon?")) {// Se a determinada frase aparecer na posição 2, os botoes da posição 2  assumirao outro nome.
			rbtnNewButton_10.setText("Elena ");
			rbtnNewButton_11.setText("Stefan");
			rbtnNewButton_12.setText("Katherine");
			if (rbtnNewButton_12.isSelected()) {

				 cont++;
			}

		}

		if (palavraSorteada3
				.equals("Quem leva a cura da mordida de lobsomem a Damon?")) { // Se a determinada frase aparecer na posição 3, os botoes da posição 3 assumirao outro nome.
			rbtnNewButton_13.setText("Elena ");
			rbtnNewButton_14.setText("Stefan");
			rbtnNewButton_15.setText("Katherine");
			if (rbtnNewButton_15.isSelected()) {
				cont++;
			}

		}

		if (palavraSorteada.equals("Qual Lobisomem Mordeu Rose?")) {

			rbtnNewButton.setText("Jules ");
			rbtnNewButton_1.setText("Mason");
			rbtnNewButton_2.setText("Klaus");
			if (rbtnNewButton.isSelected()) {
				cont++;

			}
		}

		if (palavraSorteada2.equals("Qual Lobisomem Mordeu Rose?")) {
			rbtnNewButton_10.setText("Jules ");
			rbtnNewButton_11.setText("Mason");
			rbtnNewButton_12.setText("Klaus");
			if (rbtnNewButton_10.isSelected()) {
				cont++;
			}
		}

		if (palavraSorteada3.equals("Qual Lobisomem Mordeu Rose?")) {

			rbtnNewButton_13.setText("Jules ");
			rbtnNewButton_14.setText("Mason");
			rbtnNewButton_15.setText("Klaus");
			if (rbtnNewButton_13.isSelected()) {
				cont++;
			}
		}

		if (palavraSorteada.equals("O que Niklaus é de Elijah?")) {
			rbtnNewButton.setText(" Tio ");
			rbtnNewButton_1.setText("Pai");
			rbtnNewButton_2.setText("Irmão");
			if (rbtnNewButton_2.isSelected()) {
				cont++;

			}
		}
		if (palavraSorteada2.equals("O que Niklaus é de Elijah?")) {
			rbtnNewButton_10.setText(" Tio ");
			rbtnNewButton_11.setText("Pai");
			rbtnNewButton_12.setText("Irmão");

			if (rbtnNewButton_12.isSelected()) {

				cont++;
			}
		}
		if (palavraSorteada3.equals("O que Niklaus é de Elijah?")) {

			rbtnNewButton_13.setText(" Tio ");
			rbtnNewButton_14.setText("Pai");
			rbtnNewButton_15.setText("Irmão");

			if (rbtnNewButton_15.isSelected()) {
				cont++;
			}
		}

		if (palavraSorteada.equals("O sobrenome dos irmãos Damon e Stefan é: ")) {
			rbtnNewButton.setText("Gilbert");
			rbtnNewButton_1.setText("Salvatore");
			rbtnNewButton_2.setText("Petrova");
			if (rbtnNewButton_1.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada2
				.equals("O sobrenome dos irmãos Damon e Stefan é: ")) {
			rbtnNewButton_10.setText("Gilbert");
			rbtnNewButton_11.setText("Salvatore");
			rbtnNewButton_12.setText("Petrova");
			if (rbtnNewButton_11.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada3
				.equals("O sobrenome dos irmãos Damon e Stefan é: ")) {

			rbtnNewButton_13.setText("Gilbert");
			rbtnNewButton_14.setText("Salvatore");
			rbtnNewButton_15.setText("Petrova");

			if (rbtnNewButton_14.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada
				.equals("Qual o nome da vampira Original que já namorou Stefan?")) {
			rbtnNewButton.setText("Rebakah");
			rbtnNewButton_1.setText("Katherine");
			rbtnNewButton_2.setText("Elena");
			if (rbtnNewButton.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada2
				.equals("Qual o nome da vampira Original que já namorou Stefan?")) {

			rbtnNewButton_10.setText("Rebakah");
			rbtnNewButton_11.setText("Katherine");
			rbtnNewButton_12.setText("Elena");
			if (rbtnNewButton_10.isSelected()) {

				cont++;
			}
		}
		if (palavraSorteada3
				.equals("Qual o nome da vampira Original que já namorou Stefan?")) {

			rbtnNewButton_13.setText("Rebakah");
			rbtnNewButton_14.setText("Katherine");
			rbtnNewButton_15.setText("Elena");
			if (rbtnNewButton_13.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada.equals("Quem transformou Caroline?")) {

			rbtnNewButton.setText("Damon");
			rbtnNewButton_1.setText("Stefan");
			rbtnNewButton_2.setText("Katherine");

			if (rbtnNewButton_2.isSelected()) {

				cont++;
			}

		}

		if (palavraSorteada2.equals("Quem transformou Caroline?")) {

			rbtnNewButton_10.setText("Damon");
			rbtnNewButton_11.setText("Stefan");
			rbtnNewButton_12.setText("Katherine");

			if (rbtnNewButton_12.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada3.equals("Quem transformou Caroline?")) {

			rbtnNewButton_13.setText("Damon");
			rbtnNewButton_14.setText("Stefan");
			rbtnNewButton_15.setText("Katherine");
			if (rbtnNewButton_15.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada
				.equals("No primeiro episódio da terceira temporada quem está fazendo aniversário?")) {

			rbtnNewButton.setText("Jeremy");
			rbtnNewButton_1.setText("Elena");
			rbtnNewButton_2.setText("Stefan");
			if (rbtnNewButton_1.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada2
				.equals("No primeiro episódio da terceira temporada quem está fazendo aniversário?")) {
			rbtnNewButton_10.setText("Jeremy");
			rbtnNewButton_11.setText("Elena");
			rbtnNewButton_12.setText("Stefan");
			if (rbtnNewButton_11.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada3
				.equals("No primeiro episódio da terceira temporada quem está fazendo aniversário?")) {

			rbtnNewButton_13.setText("Jeremy");
			rbtnNewButton_14.setText("Elena");
			rbtnNewButton_15.setText("Stefan");

			if (rbtnNewButton_14.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada
				.equals("No primeiro episódio da quarta temporada o que Stefan dá a Elena no telhado?")) {

			rbtnNewButton.setText("Anel");
			rbtnNewButton_1.setText("Colar");
			rbtnNewButton_2.setText("Pulseira");
			if (rbtnNewButton.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada2
				.equals("No primeiro episódio da quarta temporada o que Stefan dá a Elena no telhado?")) {

			rbtnNewButton_10.setText("Anel");
			rbtnNewButton_11.setText("Colar");
			rbtnNewButton_12.setText("Pulseira");
			if (rbtnNewButton_10.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada3
				.equals("No primeiro episódio da quarta temporada o que Stefan dá a Elena no telhado?")) {

			rbtnNewButton_13.setText("Anel");
			rbtnNewButton_14.setText("Colar");
			rbtnNewButton_15.setText("Pulseira");
			if (rbtnNewButton_13.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada.equals("Quem provoca o acidente de elena e Math?")) {

			rbtnNewButton.setText("Damon");
			rbtnNewButton_1.setText("Math");
			rbtnNewButton_2.setText("Rebekah");
			if (rbtnNewButton_2.isSelected()) {
				cont++;
			}
		}
		if (palavraSorteada2.equals("Quem provoca o acidente de elena e Math?")) {

			rbtnNewButton_10.setText("Damon");
			rbtnNewButton_11.setText("Math");
			rbtnNewButton_12.setText("Rebekah");
			if (rbtnNewButton_12.isSelected()) {
				cont++;

			}
		}
		if (palavraSorteada3.equals("Quem provoca o acidente de elena e Math?")) {
			rbtnNewButton_13.setText("Damon");
			rbtnNewButton_14.setText("Math");
			rbtnNewButton_15.setText("Rebekah");
			if (rbtnNewButton_15.isSelected()) {
				cont++;
			}
			
		}

		 btnConcluir.addActionListener(new ActionListener() {
			 	public void actionPerformed(ActionEvent e) {
			 		JOptionPane.showMessageDialog( null, "Acertos " + cont );
			 	}
			 });

	
	
	
	}

}

7 Respostas

flaviochess

Primeiro edita seu post aí e fecha a tag code: [/code] para ficar mais legível seu código. :wink:

flaviochess

sedani, agora vamos ao problema… o contador não funciona, como assim? quando vc aperta o botão ele está zerado?

A

Você está se confundindo com o momento que as coisas são executadas.

Deveria efetuar a contagem do que está certo ou errado, a cada click.

Na hora que o usuário aperta o botão…que código é executado?

Experimenta rodar o programa passo a passo, com um debugger, e verá o que está acontecendo de errado.

PS: Tem certeza que esse é o código certo? Aqui ele nem compila pois a variável cont deveria ser final para ser usada dentro da classe anônima.

_

Na verdade, quando chamo o contador no final, mostra o erro e manda mudar para “final int cont”

flaviochess

Então… vc colocou toda sua lógica no construtor, sendo assim, assim que a classe for instanciada ele irá verificar todas essas questões antes mesmo do usuário ter escolhido algo…

Aconselho como primeiro passo retirar todos estes ifs e colocar dentro de outro método e seu botão chama este outro método e a variável cont vc declara fora dos métodos, lá no inicio da classe e no construtor além do listener do botão vc vai apenas iniciar a variável cont com 0 (zero)… entendeu? :slight_smile:

_

flaviochess:
Então… vc colocou toda sua lógica no construtor, sendo assim, assim que a classe for instanciada ele irá verificar todas essas questões antes mesmo do usuário ter escolhido algo…

Aconselho como primeiro passo retirar todos estes ifs e colocar dentro de outro método e seu botão chama este outro método e a variável cont vc declara fora dos métodos, lá no inicio da classe e no construtor além do listener do botão vc vai apenas iniciar a variável cont com 0 (zero)… entendeu? :slight_smile:

Acho que entendi sim. Vou tentar fazer isso, muito obrigada!

charleston10

Oxi, mas assim que o correto,
FINAL é um identificador para deixar sua váriavel estática.

FINAL TIPO_VARIAVEL NOME_VARIAVEL…

;]

Criado 30 de novembro de 2012
Ultima resposta 1 de dez. de 2012
Respostas 7
Participantes 4