Author Topic: [JAVA] Metric conversion help?  (Read 2852 times)

0 Members and 1 Guest are viewing this topic.

Offline j12stealth

  • NULL
  • Posts: 3
  • Cookies: 0
  • Curing the corrupt, 1 bullet at a time
    • View Profile
[JAVA] Metric conversion help?
« on: March 18, 2012, 12:05:49 pm »
Hey guys I need help about this code this is my case study for COPRO(computer programming 2).
Im using eclipse indigo to run my java codes and i think it runs properly but when i run this to jcreator it says it has 1 or 2 errors..if yah know which are the errors please kindly comment below



Code: [Select]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Converter extends JFrame {

    static JFrame frame;
    static JComboBox<?> metb, impb;
    static Container pane;
    static Insets insets;
    static JLabel to;
    static JButton go, clear1, clear2;
    static JTextField metf, impf;
    static Dimension screenSize;
    static Point middle, newLocation; 
   
    public static void compute(String meti, String impi, int x, int y, double ratio) {
        if (meti.length() >= 1 && impi.length() == 0) { //converting from metric to imperial       
            if (metb.getSelectedIndex() != 0 && impb.getSelectedIndex() != 0) { //if user has selected units     
                //length
                if (metb.getSelectedIndex() >= 1 && impb.getSelectedIndex() >= 1) {                   
                    if (metb.getSelectedIndex() == x && impb.getSelectedIndex() == y) {
                    double parse = Double.parseDouble(meti);
                    double ans = parse * ratio;
                    String result = "" + ans;
                    impf.setText(result);                                     
                    }                                       
                }
            } else {
                JOptionPane.showMessageDialog(frame,"Please select you units");
            }       
        } else if (meti.length() == 0 && impi.length() >= 1) { //converting from imperial to metric 
            if (metb.getSelectedIndex() != 0 && impb.getSelectedIndex() != 0) { //if user has selected units
                if (metb.getSelectedIndex() >= 1 && impb.getSelectedIndex() >= 1) {                   
                    if (metb.getSelectedIndex() == x && impb.getSelectedIndex() == y) {
                    double parse = Double.parseDouble(impi);
                    double ans = parse / ratio;
                    String result = "" + ans;
                    metf.setText(result);                                     
                    }                                       
                }
            } else {
                JOptionPane.showMessageDialog(frame,"Please select your units");
            }   
        }       
    }
   
    public static void temperature(String meti, String impi) {
        if (meti.length() >= 1 && impi.length() == 0) { //converting from metric to imperial       
            if (metb.getSelectedIndex() != 0 && impb.getSelectedIndex() != 0) { //if user has selected units     
                //length
                if (metb.getSelectedIndex() >= 7 && metb.getSelectedIndex() <= 8) {                   
                    if (metb.getSelectedIndex() == 7 && impb.getSelectedIndex() == 10) {//k f
                        double parse = Double.parseDouble(meti);
                        double ans = 9/5 * (parse - 273) + 32;
                        String result = "" + ans;
                        impf.setText(result);   
                    } else if (metb.getSelectedIndex() == 8 && impb.getSelectedIndex() == 9) {//c k
                        double parse = Double.parseDouble(meti);
                        double ans = parse + 273;
                        String result = "" + ans;
                        impf.setText(result);
                    } else if (metb.getSelectedIndex() == 8 && impb.getSelectedIndex() == 10) {//c f
                        double parse = Double.parseDouble(meti);
                        double ans = 9/5 * parse + 32;
                        String result = "" + ans;
                        impf.setText(result);
                    }                                                     
                }
            } else {
                JOptionPane.showMessageDialog(frame,"Please select your units");
            }       
        } else if (meti.length() == 0 && impi.length() >= 1) { //converting from imperial to metric 
            if (metb.getSelectedIndex() != 0 && impb.getSelectedIndex() != 0) { //if user has selected units
                    if (metb.getSelectedIndex() == 7 && impb.getSelectedIndex() == 10) {//f k
                        double parse = Double.parseDouble(impi);
                        double ans = 9/5 * (parse - 32) + 273;
                        String result = "" + ans;
                        metf.setText(result);   
                    } else if (metb.getSelectedIndex() == 8 && impb.getSelectedIndex() == 9) {//k c
                        double parse = Double.parseDouble(impi);
                        double ans = parse - 273;
                        String result = "" + ans;
                        metf.setText(result);
                    } else if (metb.getSelectedIndex() == 8 && impb.getSelectedIndex() == 10) {//f c
                        double parse = Double.parseDouble(impi);
                        double ans = 9/5 * parse - 32;
                        String result = "" + ans;
                        metf.setText(result);
                    }
            } else {
                JOptionPane.showMessageDialog(frame,"Please select you units");
            }   
        }       
    }       
   
    public static class goAction implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String meti = metf.getText();
            String impi = impf.getText();
            if (meti.length() == 0 && impi.length() >= 1 || meti.length() >= 1 && impi.length() == 0) {
                compute(meti, impi, 1, 1, 0.0393700787); //mm in
                compute(meti, impi, 1, 2, 0.0032808399); //mm ft
                compute(meti, impi, 1, 3, 0.0010936133);//mm yd
                compute(meti, impi, 1, 4, 0.000000621371192); //mm mi
                compute(meti, impi, 2, 1, 0.393700787);//cm in
                compute(meti, impi, 2, 2, 0.032808399);//cm ft
                compute(meti, impi, 2, 3, 0.010936133);//cm yd
                compute(meti, impi, 2, 4, 0.00000621371192);//cm mi
                compute(meti, impi, 3, 1, 39.3700787);//m in
                compute(meti, impi, 3, 2, 3.2808399);//m ft
                compute(meti, impi, 3, 3, 1.0936133);//m yd
                compute(meti, impi, 3, 4, 0.000621371192);//m mi
                compute(meti, impi, 4, 1, 39370.0787);//km in
                compute(meti, impi, 4, 2, 3280.8399);//km ft
                compute(meti, impi, 4, 3, 1093.6133);//km yd
                compute(meti, impi, 4, 4, 0.621371192);//km mi
                compute(meti, impi, 5, 5, 0.0338140227);//ml fl oz
                compute(meti, impi, 5, 6, 0.00211337642);//ml pt
                compute(meti, impi, 5, 7, 0.00105668821);//ml qt
                compute(meti, impi, 5, 8, 0.000264172052);//ml gal
                compute(meti, impi, 6, 5, 33.8140227);//l fl oz
                compute(meti, impi, 6, 6, 2.11337642);//l pt
                compute(meti, impi, 6, 7, 1.05668821);//l qt
                compute(meti, impi, 6, 8, 0.264172052);//l gal
                compute(meti, impi, 7, 9, 1); //k k   
                compute(meti, impi, 9, 11, 0.0352739619);//g oz
                compute(meti, impi, 9, 12, 0.00220462262);//g lb
                compute(meti, impi, 9, 13, 0.000157473044);//g st
                compute(meti, impi, 9, 14, 0.00000110231131);//g t
                compute(meti, impi, 10, 11, 35.2739619);//kg oz
                compute(meti, impi, 10, 12, 2.20462262);//kg lb
                compute(meti, impi, 10, 13, 0.157473044);//kg st
                compute(meti, impi, 10, 14, 0.00110231131);//kg t
                compute(meti, impi, 11, 11, 35273.9619);//mt oz
                compute(meti, impi, 11, 12, 2204.62262);//mt lb
                compute(meti, impi, 11, 13, 157.473044);//mt st
                compute(meti, impi, 11, 14, 1.10231131);//mt t
                temperature(meti, impi);//k f, c k, c f
            } else if (meti.length() >= 1 && impi.length() >= 1) { //input in two fields       
                JOptionPane.showMessageDialog(frame,"Please only put a number on one side");
                impf.setText("");
                metf.setText("");             
            } else if (meti.length() == 0 && impi.length() == 0) { //input in no fields       
                JOptionPane.showMessageDialog(frame,"Please enter a number to be converted");           
            }                 
        }
    }       
   
    public static class clear1Action implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            metf.setText("");
        }
    }
   
    public static class clear2Action implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            impf.setText("");
        }
    }
   
    public static void main (String[] args) {
   
        try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
        catch (ClassNotFoundException e) {}
        catch (InstantiationException e) {}
        catch (IllegalAccessException e) {}
        catch (UnsupportedLookAndFeelException e) {}
   
        String[] metric = { "metric:", "millimetres", "centimetres", "metres", "kilometres", "mililitres", "litres", "kelvin", "celcius", "grams", "kilograms", "tonnes" };               
        String[] imperial = { "imperial:", "inches", "feet", "yards", "miles", "fluid ounces", "US pints", "US quarts", "US gallons", "kelvin", "fahrenheit", "ounces", "pounds", "stones", "tons" };   
       
        frame = new JFrame ("Unit Converter");                       
        metb = new JComboBox<Object> (metric);
        impb = new JComboBox<Object> (imperial); 
        to = new JLabel("< -- to -- >");
        go = new JButton("Go");
        clear1 = new JButton("C");
        clear2 = new JButton("C");
        metf = new JTextField();
        impf = new JTextField();             
               
        pane = frame.getContentPane();
        insets = pane.getInsets();
        pane.setLayout(null);       
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        metb.setSelectedIndex(0);
        impb.setSelectedIndex(0);
       
        pane.add(metf);
        metf.setBounds(insets.left + 5, insets.top + 5, 200, metf.getPreferredSize().height);       
       
        pane.add(metb);
        metb.setBounds(insets.left + 5, metf.getHeight() + 5, 282, metb.getPreferredSize().height);
       
        pane.add(clear1);
        clear1.setBounds(metf.getX() + metf.getWidth() + 5, insets.top + 5, clear1.getPreferredSize().width, metb.getPreferredSize().height);
       
        pane.add(to);
        to.setBounds(clear1.getX() + clear1.getWidth() + 5, insets.top + 5, to.getPreferredSize().width, to.getPreferredSize().height);
       
        pane.add(impf);
        impf.setBounds(to.getX() + to.getWidth() + 5, insets.top + 5, 200, impf.getPreferredSize().height); 
       
        pane.add(impb);
        impb.setBounds(metb.getX() + metb.getWidth() + 5, impf.getHeight() + 5, 283, impb.getPreferredSize().height);
       
        pane.add(clear2);
        clear2.setBounds(impf.getX() + impf.getWidth() + 5, insets.top + 5, clear2.getPreferredSize().width, metb.getPreferredSize().height);     
       
        pane.add(go);
        go.setBounds(clear2.getX() + clear2.getWidth() + 5, insets.top + 5, go.getPreferredSize().width, metb.getPreferredSize().height);
       
        go.addActionListener(new goAction());
        clear1.addActionListener(new clear1Action());
        clear2.addActionListener(new clear2Action());
       
        frame.setSize(580,110);
       
        screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        middle = new Point(screenSize.width / 2, screenSize.height / 2);
        newLocation = new Point(middle.x - (frame.getWidth() / 2), middle.y - (frame.getHeight() / 2));
        frame.setLocation(newLocation);
       
        frame.setVisible(true);
    }
}
I desire to kill the thought of man, and the faith upon which he stands

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: [JAVA] Metric conversion help?
« Reply #1 on: March 18, 2012, 06:15:00 pm »
Quote
but when i run this to jcreator it says it has 1 or 2 errors.

You got the error messages so you should post them.
Does it happen at runtime or compiletime?

At compiletime there should only be a warning because you didn't set a serial number for your JFrame. For runtime--well, you have to know, what happened and what you did to make it happen (which buttons pressed, which inputs done and so on).

If the cause is wrong code, the errors won't depend on the IDE. So it might be that you have wrong settings for JCreator. But we can't tell you that without an error message, my crystal ball is not working atm.
« Last Edit: March 18, 2012, 06:19:27 pm by Deque »

Offline leewillz

  • Serf
  • *
  • Posts: 23
  • Cookies: 2
  • import java.help.me
    • View Profile
Re: [JAVA] Metric conversion help?
« Reply #2 on: May 10, 2012, 04:56:29 pm »
i just tried ur code and it works fine for me it seems to be an eclipse issue, do you have netbeans its a much more stable IDE
« Last Edit: May 10, 2012, 04:58:27 pm by leewillz »

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: [JAVA] Metric conversion help?
« Reply #3 on: May 10, 2012, 05:45:56 pm »
i just tried ur code and it works fine for me it seems to be an eclipse issue, do you have netbeans its a much more stable IDE
j12stealth said it worked fine in Eclipse, so it is not an Eclipse issue.