Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/03/2011, 20:09
gorystyle
 
Fecha de Ingreso: enero-2011
Ubicación: Venezuela, Táchira
Mensajes: 96
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: JComboBox y sus eventos problema

Wow muchas gracias javi funciono perfecto! jeje pero aun tengo un problema con las formulas , algunas conversiones de fahrenheit a kelvin y viceversa no estan bien... estoy usando las formulas de Wikipedia.. podrias ayudarme con eso? te lo agaredeceria mucho.. aki la aplicacion funcionando:

Código PHP:
Ver original
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.awt.event.ItemEvent;
  6. import java.awt.event.ItemListener;
  7. public class NewMain extends JFrame{
  8.  
  9.     private JLabel eDe,eA,cant,salida;
  10.     private JTextField cantidad;
  11.     private JComboBox de,a;
  12.     private JButton convertir, salir;
  13.     private String DE="", A="";
  14.  
  15.     public NewMain(){
  16.         super("Conversor de temperatura.");
  17.  
  18.         Container contenedor = getContentPane();
  19.         contenedor.setLayout(new FlowLayout());
  20.  
  21.         eDe = new JLabel("De:     ");
  22.         eA = new JLabel("       A:");
  23.         JPanel panel1 = new JPanel();
  24.         panel1.add(eDe);
  25.         panel1.add(eA);
  26.         contenedor.add(panel1);
  27.         //Combo Boxes
  28.         de = new JComboBox();
  29.         de.addItem("Centigrados");
  30.         de.addItem("Fahrenheit");
  31.         de.addItem("Kelvin");
  32.         de.setMaximumRowCount(3);
  33.        
  34.         a = new JComboBox();
  35.         a.addItem("Centigrados");
  36.         a.addItem("Fahrenheit");
  37.         a.addItem("Kelvin");
  38.         a.setMaximumRowCount(3);
  39.        
  40.         JPanel panel2 = new JPanel();
  41.         panel2.add(de);
  42.         panel2.add(a);
  43.         contenedor.add(panel2);
  44.         //Etiqueta y Campo de texto para ingresar la cantidad
  45.         cant = new JLabel("Cantidad:");
  46.         cantidad = new JTextField(10);
  47.         JPanel panel3 = new JPanel();
  48.         panel3.add(cant);
  49.         panel3.add(cantidad);
  50.         contenedor.add(panel3);
  51.         //Botones
  52.         convertir = new JButton("Convertir");
  53.         convertir.addActionListener(
  54.             new ActionListener(){
  55.                 public void actionPerformed(ActionEvent e){
  56.                     String DE = de.getSelectedItem().toString();
  57.                     String A = a.getSelectedItem().toString();
  58.                     convertir(Integer.parseInt(cantidad.getText()), DE, A);
  59.                 }
  60.             }
  61.         );
  62.         salir = new JButton("Salir");
  63.         salir.addActionListener(
  64.             new ActionListener(){
  65.                 public void actionPerformed(ActionEvent e){
  66.                     System.exit(0);
  67.                 }
  68.             }
  69.         );
  70.         JPanel panel4 = new JPanel();
  71.         panel4.add(convertir);
  72.         panel4.add(salir);
  73.         contenedor.add(panel4);
  74.         //Etiqueta para mostrar la salida
  75.         salida = new JLabel("");
  76.         JPanel panel5 = new JPanel();
  77.         panel5.add(salida);
  78.         contenedor.add(panel5);
  79.  
  80.         setSize(250,250);
  81.         setVisible(true);
  82.         setResizable(false);
  83.     }
  84.  
  85.     public void convertir(int canti, String de, String a){
  86.         int numero = canti;
  87.         String desde = de;
  88.         String hacia = a;
  89.         double resultado = 0;
  90.        
  91.         //De centrigrados a centigrados
  92.         if(desde.equals("Centigrados") && hacia.equals("Centigrados")){
  93.             resultado = numero;
  94.             salida.setText("Resultado: " + resultado + " centigrados");
  95.             //cantidad.setText("");
  96.         }
  97.         //De grados centigrados a grados farenheit
  98.         if(desde.equals("Centigrados") && hacia.equals("Fahrenheit")){
  99.             resultado = 9*(numero/5)+32;
  100.             salida.setText("Resultado: " + resultado);
  101.             //cantidad.setText("");
  102.         }
  103.         //De grados centigrados a grados kelvin
  104.         if(desde.equals("Centigrados") && hacia.equals("Kelvin")){
  105.             resultado = (numero + 273.15);
  106.             salida.setText("Resultado: " + resultado);
  107.             //cantidad.setText("");
  108.         }
  109.         ////////////////////////////////////////////////////////////////////////
  110.         //De farenheit a centigrados
  111.         if(desde.equals("Fahrenheit") && hacia.equals("Centigrados")){
  112.             resultado = (5/9)*(numero-32);
  113.             salida.setText("Resultado: " + resultado);
  114.             //cantidad.setText("");
  115.         }
  116.         //De farenheit a farenheit
  117.         if(desde.equals("Fahrenheit") && hacia.equals("Fahrenheit")){
  118.             resultado = numero;
  119.             salida.setText("Resultado: " + resultado);
  120.             //cantidad.setText("");
  121.         }
  122.         //De farenheit a kelvin
  123.         if(desde.equals("Fahrenheit") && hacia.equals("Kelvin")){
  124.             resultado = (numero+459.67)/(9/5);
  125.             salida.setText("Resultado: " + resultado);
  126.             //cantidad.setText("");
  127.         }
  128.         ////////////////////////////////////////////////////////////////////////
  129.         //De kelvin a centigrados
  130.         if(desde.equals("Kelvin") && hacia.equals("Centigrados")){
  131.             resultado = (numero - 273.15);
  132.             salida.setText("Resultado: " + resultado);
  133.             //cantidad.setText("");
  134.         }
  135.         //De kelvin a farenheit
  136.         if(desde.equals("Kelvin") && hacia.equals("Fahrenheit")){
  137.             resultado = (numero-273)*(9/5)+32;
  138.             salida.setText("Resultado: " + resultado);
  139.             //cantidad.setText("");
  140.         }
  141.         //De kelvin a kelvin
  142.         if(desde.equals("Kelvin") && hacia.equals("Kelvin")){
  143.             resultado = numero;
  144.             salida.setText("Resultado: " + resultado);
  145.             //cantidad.setText("");
  146.         }
  147.     }
  148.  
  149.     public static void main(String[] args) {
  150.         NewMain conversor = new NewMain();
  151.         conversor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  152.     }
  153. }