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 !