Java Swing, calcular idade a partir da data de nascimento

Olá, estou com problemas em fazer esse exercício:

  • Crie um programa Java Swing que contenha uma caixa de texto, um botão e um label. O usuário deve informar o ano de seu nascimento na caixa de texto e, ao clicar no botão, o programa deve informar a idade do usuário no Label.

preciso de ajuda

Precisa de ajuda em que? Quanto do código você já fez? Poste o mesmo.
É erro no código ou problema com lógica?
Precisamos de mais informações para poder ajudar.

eu fiz isso usando JOptionPane:

import javax.swing.JOptionPane;

public class Idade { //inicio da classe
    public static void main(String[] args){
        int anoN, anoA, idade=0;
    
    anoN = Integer.parseInt(JOptionPane.showInputDialog("Informe o ano de nascimento:"));
    anoA = Integer.parseInt(JOptionPane.showInputDialog("Informe o ano atual"));
  
    idade = anoA - anoN;
    
    JOptionPane.showMessageDialog(null,"A idade do usuario ate 31 de dezembro de "+ anoA +" é "+ idade);
  } 
} 

mas não sei fazer isso no Java Swing usando Label e caixa de texto, preciso de alguém que saiba

Boa tarde Carlos,

Fica mais ou menos dessa forma:

package br.com.teste;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Janela extends JFrame {

	private static final long serialVersionUID = 1L;
	
	private JLabel lAnoNascimento;
	private JTextField tfAnoNascimento;
	private JLabel lAnoAtual;
	private JTextField tfAnoAtual;
	private JLabel lResultado;
	private JButton bCalcular;
	
	public Janela() {
		super("Calculador");
		
		lAnoNascimento = new JLabel("Informe o ano de nascimento");
		lAnoAtual = new JLabel("Informe o ano atual");
		
		tfAnoNascimento = new JTextField(10);		
		tfAnoAtual = new JTextField(10);
		
		lResultado = new JLabel();
		
		bCalcular = new JButton("Calcular");
		bCalcular.addMouseListener(new MouseListener() {
			@Override
			public void mouseReleased(MouseEvent e) {}
			
			@Override
			public void mousePressed(MouseEvent e) {}
			
			@Override
			public void mouseExited(MouseEvent e) {}
			
			@Override
			public void mouseEntered(MouseEvent e) {}
			
			@Override
			public void mouseClicked(MouseEvent e) {
				Integer anoNascimento = Integer.valueOf(tfAnoNascimento.getText());
				Integer anoAtual = Integer.valueOf(tfAnoAtual.getText());
				Integer resultado = anoAtual - anoNascimento;
				lResultado.setText(resultado.toString());
			}
			
		});
		
		JPanel panel = new JPanel();
		panel.add(lAnoNascimento);
		panel.add(tfAnoNascimento);
		panel.add(lAnoAtual);
		panel.add(tfAnoAtual);
		panel.add(bCalcular);
		panel.add(lResultado);
		
		this.setSize(200, 200);
		this.add(panel);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	}

	public static void main(String[] args) throws Exception {
		Janela janela = new Janela();
		janela.setVisible(true);
	}
	
}

Da uma estudada no código e se tiver alguma dúvida é só falar.

Espero ter ajudado.

1 curtida