Ola Pessoal! Preciso fazer tela para calcular o imc mas estou com dificuldade em organizar o painel. alguém pode me ajudar?

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.HeadlessException;

import javax.swing.AbstractButton;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;

public class tela extends JFrame {

float peso;
float altura;
float imc;

private JLabel lblpeso = new JLabel();
private JLabel lblaltura = new JLabel();
private JLabel lblimc = new JLabel();
private JTextField txtpeso = new JTextField();
private JTextField txtaltura = new JTextField();
private JTextField txtimc = new JTextField();
private JButton btnCalcular = new JButton("Calcular");
private JComboBox<String> comoimc = new JComboBox<String>();

public static final int LARGURA_PADRAO = 300;
public static final int ALTURA_PADRAO = 200;

public  tela() throws HeadlessException {
	setTitle("Calcule o IMC");
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setSize(LARGURA_PADRAO, ALTURA_PADRAO);
	setLayout(new FlowLayout()); 

    lblpeso.setText("Qual é o peso(KG): ");
    txtpeso.setColumns(9);
	lblaltura.setText("Qual é a altura(cm): ");
	txtaltura.setColumns(8);
	lblimc.setText("IMC");
	txtimc.setColumns(8);
	btnCalcular.setText("Calcular");
	lblpeso.setHorizontalAlignment(SwingConstants.LEFT);
	lblaltura.setHorizontalAlignment(SwingConstants.LEFT);
	
	JPanel painelDados = new JPanel();
	painelDados.setLayout(new GridLayout(3, 2, 5, 5));
	painelDados.add(lblpeso);
	painelDados.add(txtpeso);
	painelDados.add(lblaltura);
	painelDados.add(txtaltura);
	painelDados.setBorder(BorderFactory.createLoweredBevelBorder());
	getContentPane().add(painelDados, BorderLayout.WEST);
	
	
	JPanel painelresultado = new JPanel();
	painelDados.setLayout(new GridLayout(3, 2, 5, 5));
	painelresultado.add(lblimc);
	painelresultado.add(txtimc);
	painelresultado.add(comoimc);
	painelresultado.setBorder(BorderFactory.createLoweredBevelBorder());
	getContentPane().add(painelresultado, BorderLayout.SOUTH);
   	
	
	JPanel painelbotaocalcular = new JPanel();
	painelbotaocalcular.add(btnCalcular);
	getContentPane().add(painelbotaocalcular, BorderLayout.NORTH);
   	
	
	
	
}
	
	//botão calcular

	private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt) {
		altura = Float.valueOf(lblpeso.getText());
		peso = Float.valueOf(lblaltura.getText());

		imc = peso / (altura * altura);

		txtimc.setText(String.valueOf(imc));

		txtimc.setText(verificaImc(imc));
		
	
	btnCalcular.addActionListener(new java.awt.event.ActionListener() {
		public void actionPerformed(java.awt.event.ActionEvent evt) {
			btnCalcularActionPerformed(evt);
		}
	});
}
	
	
	
	

	public String verificaImc(float imc) {
		String resultado = "";
		if (imc <= 18.5) {
			resultado = "Você está abaixo do peso";
		} else if (imc > 18.5 && imc <= 24.9) {
			resultado = "Peso Normal";
		} else if (imc > 25.0 && imc <= 29.9) {
			resultado = "Sobrepeso";
		} else if (imc > 30.0 && imc <= 34.9) {
			resultado = "Obsidade - Grau I";
		} else if (imc > 35.0 && imc <= 39.9) {
			resultado = "Obsidade - Grau II";
		} else if (imc > 40.0) {
			resultado = "Obsidade - Grau III";
		}
		return resultado;