Tratando evento com JCombobox

Olá pessoal ,

Estou com uma certa dificuldade …
Fiz este exercício apenas usando JOptoinpane e tudo correu ok , agora estou tentando fazer ele rodar usando Jframe e
nao estou conseguindo fazer com que meu combo selecionado retorne o calculo conforme a renda e o plano do usuário , mas com
relaçao a idade esta td OK ele retorna o valor selecionado .
segue meu código e o exercício em vermelho ;

[color=red]Um plano de saúde, após as negociações
com o governo enviou os seguintes
preços para as empresas credenciadas:
? até 10 anos - R$ 50,00
? 10 anos até 29 anos - R$ 75,00
? 29 anos até 45 anos - R$ 130,00
? 45 anos até 59 anos - R$ 180,00
? 59 anos até 65 anos - R$ 270,00
? maior que 65 anos - R$ 400,00*/

? Esta é a tabela do plano Standard, O tipo Open possui
desconto de 15% nos valores e o Gold acréscimo de
21,5%.
? O plano Open é livre para toda as rendas, o plano
Standard é para pessoas com renda mensal acima de
R$ 1.500,00 e o Gold para renda acima de R$ 4.500,00.
? Faça uma aplicação em Java que permita entrar com
o nome, a idade, a renda de uma pessoa e o tipo de
plano (Open, Standard e Gold), calcule e imprima o
valor que ela deverá pagar.
? Obs: Caso o usuário informe valores que conflitem com
estas regras emitir uma mensagem.[/color]


package app_média;
import java.awt.Color;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class App_média extends JFrame{

    class eventos implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent action) {
             if(action.getSource() == sair){
             System.exit(0); 
             }
             else if(action.getSource() == bot_calcular ) {
            
     Tipo_plano tp = new Tipo_plano (idade.getText(), plano.getToolTipText());
                
                  valor.setText(tp.retornaValor());
                        }
                 }
             }
                 
           
        private JTextField nome,idade,renda;
        private JButton bot_calcular, sair;
        private JComboBox plano;
        private JLabel valor;
                   

        public App_média() {
    


            setSize(180,210);
            setLocationRelativeTo(null);
            setTitle("Plano Saúde ");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setResizable(true);
            getContentPane().setBackground(Color.yellow);
   
            eventos action = new eventos();
            String plan[]={"Open","Standart","Gold"};
                
         
         
            nome = new  JTextField();
            idade= new  JTextField();
            renda = new JTextField();
           valor = new JLabel("?");
           plano = new JComboBox(plan);
           plano.addActionListener(action);
            
             
            bot_calcular = new JButton("calcular");
            bot_calcular.addActionListener(action);
       
            sair = new  JButton("Sair") ;
            sair.addActionListener(action);
           
                bot_calcular.setForeground(Color.black);
                bot_calcular.setBackground(Color.gray);
                sair.setForeground(Color.black);
                sair.setBackground(Color.GRAY);
          
           setLayout(new GridLayout(6,0));
       
   
           add(new JLabel("NOME"));
           add(nome);
           add(new JLabel("IDADE"));
           add(idade);
           add(new JLabel("RENDA"));
           add(renda);
           add(new JLabel("TIPO PLANO"));
           add(plano);
           add(new JLabel("VALOR FINAL"));
           add(valor);
        
             
       
           
           add(bot_calcular);
         
           add(sair);

}           

                  
                                         
public static void main(String[] args) {
 
    App_média media = new  App_média();
     media.setVisible(true);
}

}


package app_média;

import javax.swing.JOptionPane;

class Tipo_plano {
private double idade;
private String plano ;
private double renda ;
private double tarifa ;

    public Tipo_plano(String id , String pl ) {
  
     idade = Double.parseDouble(id);
     this.plano=pl;
              
              

}



   public  double  Idade() {
 
      if (idade <= 10){                              
        tarifa = 50;
           }
 if (idade > 10 && idade <=29){                              
        tarifa = 75;
           }
 if (idade > 29 && idade <=45){                              
        tarifa = 130;
           }
 if (idade > 45 && idade <=59){                              
        tarifa = 180;
           }
 if (idade > 59 && idade <=65){                              
        tarifa = 270;
           } 
 if (idade > 65 ){                              
        tarifa = 400;
          }

    return      tarifa;
}


 public double  Plano(){
    
double valor_plano;
    double desc = 0   ;
       
       
       if ("Open".equals(plano)){
        valor_plano = (int) (tarifa * 0.15 );
        desc =  (tarifa- valor_plano);
        return  desc;
      }  
   
       if ("Standart".equals(plano) && renda >=1500){
        return    tarifa;
      }
 
       if ("Gold".equals(plano) && renda >=4500){
    
        valor_plano =   (tarifa * 0.25);
        desc = (tarifa + valor_plano);
            
      
       }else{
        
           JOptionPane.showMessageDialog(null, "Renda nao compativel");
      
       }
    return    desc ;
 }

    public  String retornaValor(){
    
        return String.format("%5.2f", Idade(),"%5.2f",Plano());
      
    }

}

Desde já obrigado pessoal !

Bem, pelo que entendi, você quer pegar o valor selecionado do combobox né?

Você tem duas opções:

int índice = combo.getSelectedIndex(), onde retornará o índice selecionado.
Object valor = combo.getSelectedItem(), onde retornará o objeto selecionado.

Como são somente três Strings no combobox, podes utilizar a primeira e fazer if-else ou pode optar pela segunda e fazer valor.toString() depois.