Ajuda com projeto java

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;
    }
}

Qual o problema do codigo? É uma linha de erro ou uma falha lógica? Se for lógica, vc conseguiu definou qual é o erro?

por partes

  • primeiro n consigo setar as informações nem como exibir as informações do eleitor pq a seleção dos atributos acontecem em locais diiferentes

Acho que você está misturando tela com eleitor.
Os atributos do eleitor, nome, sexo e idade, não deveriam ser componentes de tela e sim String, char e int.

como colocar os dados que saem do painel pra se tornar parte do eleitor