使用2个JComboBox来做不同的数学方程式,java

时间:2012-09-14 06:19:51

标签: java swing if-statement actionlistener jcombobox

我正试图在Java中获得一个简单的货币转换器。 我的问题是我无法使用不同的方程式,我尝试使用ActionListener作为JComboBox和if语句,但它似乎有效。 有人能帮助我吗? http://pastebin.com/RuM2jF5q 是我的整个代码,请问我是否有不清楚的地方:)

2 个答案:

答案 0 :(得分:1)

我在你的代码中看到两个问题:

  • 将konvleft和konvright文本字段添加到面板时,可以将其反转。你应该先添加konvleft然后再使用konvright,否则它们会被颠倒过来。

  • 在第二个ActionListener中,您仍在解析相同的konvleft.getText()值而不是解析konvright

修正以上问题,你会看到它正常工作。

答案 1 :(得分:1)

试试这个:

import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Copy {

    /**
     * @param args
     */
    public static void main(String[] args) {

        JFrame ramme = new JFrame("Valutakalkulator");
        ramme.setResizable(true);
        ramme.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ramme.setBounds(200, 300, 400, 200);
        Container panel = ramme.getContentPane();
        panel.setLayout(new GridLayout(4,1,10,10));

        String[] Valutavalg = { "USD","NOK","EUR" };        

        final JComboBox<?> Valutavalg1 = new JComboBox<Object>(Valutavalg);
        final JComboBox<?> Valutavalg2 = new JComboBox<Object>(Valutavalg);

        final JTextField konvleft = new JTextField("0");
        final JTextField konvright = new JTextField("0");
        final JTextField utbytte = new JTextField ("Utbytte av valuta");


        JButton bleft = new JButton("Konverter  -->");
        JButton bright = new JButton("<--  Konverter");

        bleft.setFont(new Font("sansserif", Font.PLAIN + Font.BOLD, 14));
        bright.setFont(new Font("sansserif", Font.PLAIN + Font.BOLD, 14));

        panel.add(Valutavalg1);
        panel.add(Valutavalg2);
        panel.add(bleft);
        panel.add(bright);
        panel.add(konvleft);
        panel.add(konvright);
        panel.add(utbytte);

        ramme.setVisible(true);



        ActionListener ValutaLeft = new ActionListener() {
            public void actionPerformed(ActionEvent actionEvent) {

                double numl = Double.parseDouble(konvleft.getText());
                int combovalg1 = Valutavalg1.getSelectedIndex();
                int combovalg2 = Valutavalg2.getSelectedIndex();

                if (combovalg1==0){
                    if (combovalg2==0){
                        double totaltVerdi = numl*10;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg2==1){
                        double totaltVerdi = numl*100;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg2==2){
                        double totaltVerdi = numl*1000;
                        setTotal(totaltVerdi, utbytte);
                    }   
                }
                if (combovalg1==1){
                    if (combovalg2==0){
                        double totaltVerdi = numl*1000;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg2==1){
                        double totaltVerdi = numl*100000;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg2==2){
                        double totaltVerdi = numl*1000000;
                        setTotal(totaltVerdi, utbytte);
                    }   
                }
                if (combovalg1==2){
                    if (combovalg2==0){
                        double totaltVerdi = numl*1000000;
                        setTotal(totaltVerdi, utbytte);
                    }
                    else if (combovalg2==1){
                        double totaltVerdi = numl*1000000;
                        setTotal(totaltVerdi, utbytte);
                    }
                    else if (combovalg2==2){
                        double totaltVerdi = numl*10000000;
                        setTotal(totaltVerdi, utbytte);
                    }   
                }
            };
            public void setTotal(double totaltVerdi, JTextField text){
                totaltVerdi = Math.round(totaltVerdi*100)/100.0d;
                String total1 = Double.toString(totaltVerdi);
                utbytte.setText(total1);
            }
        };

        ActionListener ValutaRight = new ActionListener() {
            public void actionPerformed(ActionEvent actionEvent) {

                double numl = Double.parseDouble(konvright.getText());
                int combovalg1 = Valutavalg1.getSelectedIndex();
                int combovalg2 = Valutavalg2.getSelectedIndex();

                if (combovalg2==0){
                    if (combovalg1==0){
                        double totaltVerdi = numl*10;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg1==1){
                        double totaltVerdi = numl*100;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg1==2){
                        double totaltVerdi = numl*1000;
                        setTotal(totaltVerdi, utbytte);
                    }   
                }
                if (combovalg2==1){
                    if (combovalg1==0){
                        double totaltVerdi = numl*1000;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg1==1){
                        double totaltVerdi = numl*100000;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg1==2){
                        double totaltVerdi = numl*1000000;
                        setTotal(totaltVerdi, utbytte);
                    }   
                }
                if (combovalg2==2){
                    if (combovalg1==0){
                        double totaltVerdi = numl*1000000;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg1==1){
                        double totaltVerdi = numl*1000000;
                        setTotal(totaltVerdi, utbytte);
                    }
                    if (combovalg1==2){
                        double totaltVerdi = numl*10000000;
                        setTotal(totaltVerdi, utbytte);
                    }   
                }
            };
            public void setTotal(double totaltVerdi, JTextField text){
                totaltVerdi = Math.round(totaltVerdi*100)/100.0d;
                String total1 = Double.toString(totaltVerdi);
                utbytte.setText(total1);
            }
        };
        bleft.addActionListener(ValutaLeft);
        bright.addActionListener(ValutaRight);
    }
}