tenho essa questão para um pequeno projeto mas estagnei aqui, podem me ajudar a entender meus erros?
Projeto Eleição – O programa inicia perguntando a quantidade de eleitores, use JOptionPane para realizar essa leitura, e em seguida faça a leitura dos votos dos eleitores. Crie uma janela simples que pergunte ao usuário seu nome, seu sexo e sua idade (esses são os atributos de um Eleitor). Para o campo de sexo use JRadioButton e para idade use JFormattedTextField. Caso a idade seja menor que 16, deve aparecer uma mensagem na tela “Você não pode votar!”, utilize JoptionPane para exibir a mensagem Somente se a idade for superior a 16 é que deve aparecer uma nova janela com um JComboBox com a lista de candidatos: “candidato A”, “candidato B” e “candidato C” e um botão “Votar”. Quando o voto do eleitor for computado deve aparecer um JOptionPane informando os dados do eleitor e qual foi seu voto. Quando todos os votos forem computados deve aparecer uma mensagem informando a quantidade de votos de cada candidato.
- classe eleitor
public class Eleitor{
private JTextField nome;
private JRadioButton sexo;
private JFormattedTextField idade;
public Eleitor( JTextField nome, JFormattedTextField idade ){
this.nome = nome;
this.idade = idade;
}
public JTextField getNome() {
return nome;
}
public JRadioButton getSexo() {
return sexo;
}
public void setSexo(JRadioButton sexo) {
this.sexo = sexo;
}
public JFormattedTextField getIdade() {
return idade;
}
}
- classe candidato
public class Candidato {
private int votos = 0;
public int getVotos(){
return votos;
}
public void setVotos(int votos){
this.votos += votos;
}
}
- Classe informações
public class Informacao extends Janela {
public Informacao(){
setTitle("Votação");
//Criaçao e formataçaõ do JPanel
setJp(new JPanel());
getJp().setLayout(null);
getJp().setSize(300,300);
//Manipulando is JLabel
setRotulo(new JLabel("Sistema Votação"));
getRotulo().setBounds(60, 0, 300, 55);
getRotulo().setFont(getGrande());
setNome(new JLabel("Nome: "));
getNome().setFont(getPadrao());
getNome().setBounds(0, 50, 50, 50);
setSexo(new JLabel("Sexo: "));
getSexo().setFont(getPadrao());
getSexo().setBounds(0, 90, 50, 50);
setIdade(new JLabel("Idade: "));
getIdade().setFont(getPadrao());
getIdade().setBounds(0, 130, 50, 50);
//Maniúlando JTextField
setTextNome(new JTextField());
getTextNome().setBounds(100, 65, 175, 20);
MaskFormatter mascaraIdade;
try {
mascaraIdade = new MaskFormatter("##");
setTextIdade(new JFormattedTextField(mascaraIdade));
getTextIdade().setBounds(100, 145, 175, 20);
} catch (ParseException ex) {
System.out.print("Erro");
}
//Manipulando JRadioButton
setF( new JRadioButton("F"));
getF().setFont(getPadrao());
getF().setBounds(100, 105, 35, 35);
setM( new JRadioButton("M"));
getM().setFont(getPadrao());
getM().setBounds(140, 105,35, 35);
setO( new JRadioButton("X"));
getO().setFont(getPadrao());
getO().setBounds(180, 105,35, 35);
setGrupo(new ButtonGroup());
getGrupo().add(getF());
getGrupo().add(getM());
getGrupo().add(getO());
//Manipulando JRadioButton
setProsseguir(new JButton(">>Prosseguir"));
getProsseguir().setFont(getPadrao());
getProsseguir().setBounds(80, 225, 120, 30);
getProsseguir().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
Votacao votar = new Votacao();
}
});
add(getJp());
getJp().add(getRotulo());
getJp().add(getNome());
getJp().add(getSexo());
getJp().add(getIdade());
getJp().add(getTextNome());
getJp().add(getTextIdade());
getJp().add(getF());
getJp().add(getM());
getJp().add(getO());
getJp().add(getProsseguir());
setLayout(null);
setSize(300,300);
}
Eleitor eleitor = new Eleitor( getTextNome(),getTextIdade());
}
- Classe votacao
public class Votacao extends Janela implements ActionListener {
public Votacao(){
setTitle("Escolha Candidato");
setJp(new JPanel());
getJp().setLayout(null);
getJp().setSize(300,300);
setRotulo(new JLabel("Escolha Candidato"));
getRotulo().setBounds(60, 0, 300, 55);
getRotulo().setFont(getGrande());
String[] Candidatos = {"Candidato A","Candidato B","Candidato C"};
setBox(new JComboBox(Candidatos));
getBox().setBounds(70, 70, 120, 30);
add(getBox());
getBox().addActionListener(this);
setProsseguir(new JButton("Votar"));
getProsseguir().setFont(getPadrao());
getProsseguir().setBounds(80, 225, 120, 30);
getProsseguir().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
JOptionPane.showMessageDialog(null, "\nNome: " + getNome() + "\nIdade: " + getIdade() + "\nSexo: " + getSexo());
}
});
add(getJp());
getJp().add(getRotulo());
getJp().add(getBox());
getJp().add(getProsseguir());
setLayout(null);
setSize(300,300);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == getBox()){
if(getBox().getSelectedItem()=="Candidato A"){
c1.setVotos(1);
}else if(getBox().getSelectedItem()=="Candidato B"){
c2.setVotos(1);
}else if(getBox().getSelectedItem()=="Candidato C"){
c3.setVotos(1);
}
}
}
}
- Classe da janela
public class Janela extends JFrame{
private JPanel jp;
private JLabel nome;
private JLabel sexo;
private JLabel idade;
private JLabel rotulo;
private JTextField textNome;
private JFormattedTextField textIdade;
private JButton prosseguir;
private JRadioButton F;
private JRadioButton M;
private JRadioButton O;
private ButtonGroup grupo;
private Font grande = new Font("Arial",Font.BOLD, 20);
private Font padrao = new Font("Arial",Font.BOLD,12);
private JComboBox box;
Candidato c1,c2,c3;
public Janela(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
setVisible(true);
}
public JPanel getJp() {
return jp;
}
public void setJp(JPanel jp) {
this.jp = jp;
}
public JLabel getNome() {
return nome;
}
public void setNome(JLabel nome) {
this.nome = nome;
}
public JLabel getSexo() {
return sexo;
}
public void setSexo(JLabel sexo) {
this.sexo = sexo;
}
public JLabel getIdade() {
return idade;
}
public void setIdade(JLabel idade) {
this.idade = idade;
}
public JLabel getRotulo() {
return rotulo;
}
public void setRotulo(JLabel rotulo) {
this.rotulo = rotulo;
}
public JTextField getTextNome() {
return textNome;
}
public void setTextNome(JTextField textNome) {
this.textNome = textNome;
}
public JFormattedTextField getTextIdade() {
return textIdade;
}
public void setTextIdade(JFormattedTextField textIdade) {
this.textIdade = textIdade;
}
public JButton getProsseguir() {
return prosseguir;
}
public void setProsseguir(JButton prosseguir) {
this.prosseguir = prosseguir;
}
public JRadioButton getF() {
return F;
}
public void setF(JRadioButton F) {
this.F = F;
}
public JRadioButton getM() {
return M;
}
public void setM(JRadioButton M) {
this.M = M;
}
public JRadioButton getO() {
return O;
}
public void setO(JRadioButton O) {
this.O = O;
}
public ButtonGroup getGrupo() {
return grupo;
}
public void setGrupo(ButtonGroup grupo) {
this.grupo = grupo;
}
public Font getGrande() {
return grande;
}
public void setGrande(Font grande) {
this.grande = grande;
}
public Font getPadrao() {
return padrao;
}
public void setPadrao(Font padrao) {
this.padrao = padrao;
}
public JComboBox getBox() {
return box;
}
public void setBox(JComboBox box) {
this.box = box;
}
}