-3

我很难在我的货币转换器中找到问题的根源。

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class Adam_Markros_Valutaomvandlare extends JFrame implements ActionListener {
    JPanel left, middle, right;
    JFrame ram;
    JButton buttonOK;
    JTextField fieldfrom, fieldto, extrafield;
    JLabel labelfrom, labelto, labeldollar, labeleuro, labelpund, labelkrona, extralabel, nothing;
    JRadioButton buttonDollar, buttonEuro, buttonPund, buttonKrona;
    JRadioButton buttonDollar2, buttonEuro2, buttonPund2, buttonKrona2;
    ButtonGroup GroupFrom = new ButtonGroup();
    ButtonGroup GroupTo = new ButtonGroup();

    int currencyFrom;
    int currencyTo;
    int taljare = 0;
    int USD     = 6;
    int Pund = 10;
    int Euro = 9;
    int other;
    int namnare = 0;

    public Adam_Markros_Valutaomvandlare(){
        left = new JPanel();
        middle = new JPanel();
        right = new JPanel();

        setSize(600,250);
        setTitle("Adam Markros - Valutaomvandlare");
        setLayout(new GridLayout(1,3));
        left.setLayout(new GridLayout(6,1));
        middle.setLayout(new GridLayout(6,1));
        right.setLayout(new GridLayout(6,1));

        this.add(left);
        this.add(middle);
        this.add(right);

        buttonOK = new JButton("OK");
        fieldfrom = new JTextField();
        fieldto = new JTextField();
        extrafield = new JTextField();
        labelfrom = new JLabel("Från:");
        labelto = new JLabel("Till:");
        extralabel = new JLabel("Annan valuta:");
        nothing = new JLabel("");

        buttonDollar = new JRadioButton("USD");
        buttonEuro = new JRadioButton("Euro");
        buttonPund = new JRadioButton("Pund");
        buttonKrona = new JRadioButton("SEK");

        buttonDollar2 = new JRadioButton("USD");
        buttonEuro2 = new JRadioButton("Euro");
        buttonPund2 = new JRadioButton("Pund");
        buttonKrona2 = new JRadioButton("SEK");

        GroupFrom.add(buttonDollar);
        GroupFrom.add(buttonEuro);
        GroupFrom.add(buttonPund);
        GroupFrom.add(buttonKrona);

        GroupTo.add(buttonDollar2);
        GroupTo.add(buttonEuro2);
        GroupTo.add(buttonPund2);
        GroupTo.add(buttonKrona2);

        left.add(labelfrom);
        left.add(buttonDollar);
        left.add(buttonEuro);
        left.add(buttonPund);
        left.add(buttonKrona);
        left.add(fieldfrom);

        middle.add(extralabel);
        middle.add(extrafield);
        middle.add(buttonOK);

        right.add(labelto);
        right.add(buttonDollar2);
        right.add(buttonEuro2);
        right.add(buttonPund2);
        right.add(buttonKrona2);
        right.add(fieldto);

        buttonOK.addActionListener(this);
        fieldfrom.addActionListener(this);
        fieldto.addActionListener(this);
        extrafield.addActionListener(this);

        buttonDollar.addActionListener(this);
        buttonDollar2.addActionListener(this);

        buttonEuro.addActionListener(this);
        buttonEuro2.addActionListener(this);

        buttonPund.addActionListener(this);
        buttonPund2.addActionListener(this);

        buttonKrona.addActionListener(this);
        buttonKrona2.addActionListener(this);

        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setVisible(true);
    }

    public static void main (String[] args){
        new Adam_Markros_Valutaomvandlare();
    }

    public void actionPerformed(ActionEvent e) {
        if((fieldfrom.getText().toString()) != ""){
            currencyFrom = Integer.parseInt(fieldfrom.getText());
        }
        if((fieldto.getText().toString()) != ""){
            currencyTo = Integer.parseInt(fieldto.getText());
        }

        if((extrafield.getText().toString()) != ""){
            taljare = Integer.parseInt(extrafield.getText());
        }

        /*
        if(e.getSource() == buttonDollar){
        currencyFrom = USD;
        }
        if(e.getSource() == buttonDollar2){
        currencyTo = USD;
        }
        if(e.getSource() == buttonPund){
        currencyFrom = Pund;
        }
        if(e.getSource() == buttonPund2){
        currencyTo = Pund;
        }
        if(e.getSource() == buttonEuro){
        currencyFrom = Euro;
        }
        if(e.getSource() == buttonEuro2){
        currencyTo = Euro;
        }
        if(e.getSource() == buttonKrona){
        currencyFrom = 1;
        }
        if(e.getSource() == buttonKrona2){
        currencyTo = 1;
        }
        else{
        taljare = other;
        }
        */

        if(e.getSource() == buttonOK){

            if(buttonPund.isSelected()){
                taljare = 10;
            }
            if(buttonDollar.isSelected()){
                taljare = 6;
            }
            if(buttonEuro.isSelected()){
                taljare = 9;
            }
            if(buttonKrona.isSelected()){
                taljare = 1;
            }

            if(buttonPund2.isSelected()){
                namnare = 10;
            }
            if(buttonDollar2.isSelected()){
                namnare = 6;
            }
            if(buttonEuro2.isSelected()){
                namnare = 9;
            }
            if(buttonKrona2.isSelected()){
                namnare = 1;
            }

            currencyTo = (currencyFrom * (taljare / namnare));

            fieldto.setText(Integer.toString(currencyTo));          
        }
    }
}

以下是错误:

线程“AWT-EventQueue-0”java.lang.NumberFormatException 中的异常:对于输入字符串:“”在 java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang .Integer.parseInt(Unknown Source) at Adam_Markros_Valutaomvandlare.actionPerformed(Adam_Markros_Valutaomvandlare.java:116) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing。 DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent。processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl( Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) ) 在 java.awt.Container.dispatchEventImpl(Unknown Source) 在 java.awt.Window.dispatchEventImpl(Unknown Source) 在 java.awt.Component.dispatchEvent(Unknown Source) 在 java.awt.EventQueue.dispatchEventImpl(Unknown Source) 在java.awt.EventQueue.access$000(未知来源)在 java.awt.EventQueue$1。在 java.security.AccessController.doPrivileged(Native Method) 在 java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 在 java.security.AccessControlContext$1 的 java.awt.EventQueue$1.run(Unknown Source) 运行(Unknown Source) .doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext $1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread。 java.awt 中的 pumpEventsForHierarchy(未知来源)。java.awt.EventDispatchThread.run(Unknown Source) 处 java.awt.EventDispatchThread.pumpEvents(Unknown Source) 处的 EventDispatchThread.pumpEvents(Unknown Source) 线程“AWT-EventQueue-0”java.lang.NumberFormatException:对于输入字符串: "" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at Adam_Markros_Valutaomvandlare.actionPerformed(Adam_Markros_Valutaomvandlare.java:119)在 javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 在 javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 在 javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 在 javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown来源)在 javax.swing。plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java. awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt。 LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window。在 java.awt.Component 的 dispatchEventImpl(Unknown Source)。dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1 .run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue $2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt。 java.awt.EventDispatchThread 中的 EventQueue.dispatchEvent(Unknown Source)。pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents( Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 线程“AWT-EventQueue-0”中的异常 java.lang.NumberFormatException:对于输入字符串:“” at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at Adam_Markros_Valutaomvandlare.actionPerformed(Adam_Markros_Valutaomvandlare.java:119) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing .AbstractButton$Handler。actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at java.awt。 Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component。 dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(未知来源)在 java.awt.LightweightDispatcher。dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl( Unknown Source) at java.awt.EventQueue$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged (Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2 .run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1。doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy( Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 的 pumpEvents(Unknown Source)java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 的 pumpEvents(Unknown Source)

4

1 回答 1

2

不要使用==or!=比较字符串,因为它们会检查一个对象引用是否与另一个对象引用相同,这是您不感兴趣的。

使用 equals(...) 或在您的情况下isEmpty(),因为这些检查字符串的内容是否与另一个相同或字符串是否为空。

if (!myTextField.getText().isEmpty()) {

}
于 2013-05-26T13:21:53.807 回答