Preciso de ajuda, escrevi o código más ele não retorna nenhum valor

package View;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class View_IMC extends JFrame {

private JPanel contentPane;
private JTextField txtPeso;
private JTextField txtSexo;
private JTextField txtAltura;

/**
 * Launch the application.
 */
public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				View_IMC frame = new View_IMC();
				frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

/**
 * Create the frame.
 */
public View_IMC() {
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 368, 294);
	contentPane = new JPanel();
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setContentPane(contentPane);
	contentPane.setLayout(null);
	
	JLabel lblPeso = new JLabel("Peso");
	lblPeso.setBounds(67, 74, 46, 14);
	contentPane.add(lblPeso);
	
	txtPeso = new JTextField();
	txtPeso.setBounds(140, 71, 86, 20);
	contentPane.add(txtPeso);
	txtPeso.setColumns(10);
	
	JLabel lblSexo = new JLabel("Sexo");
	lblSexo.setBounds(67, 114, 46, 14);
	contentPane.add(lblSexo);
	
	txtSexo = new JTextField();
	txtSexo.setBounds(140, 111, 86, 20);
	contentPane.add(txtSexo);
	txtSexo.setColumns(10);
	
	JLabel lblAltura = new JLabel("Altura");
	lblAltura.setBounds(67, 158, 46, 14);
	contentPane.add(lblAltura);
	
	txtAltura = new JTextField();
	txtAltura.setBounds(140, 155, 86, 20);
	contentPane.add(txtAltura);
	txtAltura.setColumns(10);
	
	JButton btnCalcular = new JButton("Calcular IMC");
	btnCalcular.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			
	float IMC;
	float altura;
	float peso;
	String sexo;
	
	peso = Float.parseFloat(txtPeso.getText());
	altura =Float.parseFloat(txtAltura.getText());
	sexo = (txtSexo.getText());
	
	IMC = (peso)/(altura * altura);
	
	if (sexo == "Masculino") {
		if(IMC <20.7) {
			JOptionPane.showMessageDialog(null, "você está abaixo do peso");
		}
	if(IMC >=20.7 && IMC <26.4) {
		JOptionPane.showMessageDialog(null,"Você está no peso Normal");
	}
	if (IMC >=26.4 && IMC <27.8) {
		JOptionPane.showMessageDialog(null, " você está marginalmente acima do peso");
	}
	if (IMC >=27.8 && IMC <= 32.3) {
		JOptionPane.showMessageDialog(null,"Você está acima do peso ideal");
		}
	if (IMC >32.3) {
		JOptionPane.showMessageDialog(null,"Você está Obeso");
	}
	else{
		if(IMC <19.1) {
			JOptionPane.showMessageDialog(null, "você está abaixo do peso");
		}
	if(IMC >=19.1 && IMC <25.8) {
		JOptionPane.showMessageDialog(null,"Você está no peso Normal");
	}
	if (IMC >=25.8 && IMC <27.3) {
		JOptionPane.showMessageDialog(null, " você está marginalmente acima do peso");
	}
	if (IMC >=27.3 && IMC <= 31.1) {
		JOptionPane.showMessageDialog(null,"Você está acima do peso ideal");
		}
	if (IMC >31.1) {
		JOptionPane.showMessageDialog(null,"Você está Obeso");
		}
}
	}}
	});
	btnCalcular.setBounds(133, 204, 118, 23);
	contentPane.add(btnCalcular);
	
		}

}

O problema está na sua comparação de strings.

Ao comprar strings vc deve utilizar o metodo .equals.

O correto seria:

if (sexo.equals("Masculino")) {
    ....
}
1 curtida

Muito Obrigado, Ajudou