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 );
}
});
}
}
Contador nao funciona no quiz, ajuda! Qual o erro?
7 Respostas
Primeiro edita seu post aí e fecha a tag code: [/code] para ficar mais legível seu código. 
sedani, agora vamos ao problema… o contador não funciona, como assim? quando vc aperta o botão ele está zerado?
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”
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? 
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?
![]()
Acho que entendi sim. Vou tentar fazer isso, muito obrigada!
Oxi, mas assim que o correto,
FINAL é um identificador para deixar sua váriavel estática.
FINAL TIPO_VARIAVEL NOME_VARIAVEL…
;]