Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida com evento GUI do JAVA

Eu estou querendo substituir a escrita no Scanner, para continuar a aplicação, por um clique no botão, no caso no clique 'sim' continua e 'não' aborta, mas não estou conseguindo implementar isso, nunca trabalhei muito com eventos ou GUI no JAVA, agradeço a ajuda desde já. Segue o código de captura do evento:

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class CapturaEventoBotao implements ActionListener {

    private JButton botao;

    public void janela(){
        JFrame frame = new JFrame();
        botao = new JButton();

        botao.addActionListener(this);

        frame.getContentPane().add(botao);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300,100);
        frame.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent evento) {
        botao.setText("Botão foi clicado!");

        botao.setFont(new Font("SansSerif", Font.BOLD, 20));    
    }

    public static void main(String[] args) {
        CapturaEventoBotao captura = new CapturaEventoBotao();
        captura.janela();
    }
}

A configuração do botão:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

@SuppressWarnings("serial")
public class ButtonFrame2 extends JFrame{

    private JButton aceita;
    private JButton nega;

    public ButtonFrame2()
    {
        super("Deseja realizar outra votação?");
        setLayout(new FlowLayout()); 

        aceita = new JButton("Sim"); 
        add(aceita); 

        nega = new JButton("Não");
        add(nega); 

        ButtonHandler handler = new ButtonHandler();
        nega.addActionListener(handler);
        aceita.addActionListener(handler);        

    }


    public class ButtonHandler implements ActionListener
    {

        public void actionPerformed(ActionEvent event)
        {
            JOptionPane.showMessageDialog(ButtonFrame2.this, String.format("Você pressionou: %s", event.getActionCommand()));
        }
    }
}

e onde eu queria que ele fosse usado:

    System.out.println(urna.listarSenador());
    System.out.println("Digite o numero do seu Senador:");
    String numSenador = sc.next();
    eleitor.votoSenador(numSenador);

    System.out.println(urna.listarPresidente());
    System.out.println("Digite o numero do seu Presidente:");
    eleitor.votoPresidente(sc.next());

    urna.computarVotos(eleitor);
    urna.mostraVotos();

    System.out.println("Nova votacao? S/N"); //AQUI SERIA A PERGUNTA PARA CONTINUAR

    ButtonFrame2 buttonFrame = new ButtonFrame2();
    buttonFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    buttonFrame.setSize(400, 80);
    buttonFrame.setVisible(true);

    //AQUI SERIA ONDE O BOTÃO 'SIM' ENTRARIA 
    if (!sc.next().toLowerCase().equals("s")) {

        System.out.println("Votacao encerrada!");
        urna.mostraVotos();
        System.out.println(urna.eleitoPresidente());
        System.out.println(urna.eleitoSenador());

        break;

Novamente agradeço por me ajudar, Qualquer coisa pode perguntar! : )

1 resposta
solução!

Iury,tudo bem ?

Não manjo muito, mas não vale a pena você usar um dialog para isso, receio que já exista um com sim e não.

Apenas não lembro o nome.

Abraços