从JTextFields将Iteger转换为String输入

时间:2018-10-30 18:25:55

标签: java

我是一名Java初学者,我对以下代码为何无法将我的字符串JTextField变量转换为整数感到困惑。它不断出现错误,提示“整数类型的parseInt(String)方法不适用于参数JTextFields”。

JTextField input = new JTextField(15);
JButton btn = new JButton("Celsius to Farenheit");
JButton btn2 = new JButton();
JLabel label = new JLabel("No value converted", JLabel.CENTER);

public TemperatureConverter() {

    setLayout(new FlowLayout());
    setSize(400, 100);
    setTitle("Temperature Converter");
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setResizable(true);
    getContentPane().setBackground(new java.awt.Color(78, 128, 198));



    btn2.addActionListener(this);

    add(input);
    add(btn);
    add(btn2);
    add(label);
}//end public


public void actionPerformed(ActionEvent e) {


     Integer.parseInt(input); <------ this is coming up as an error
     int celsiusValue = input;


}//end actionperformed

1 个答案:

答案 0 :(得分:1)

问题是您正在尝试解析作为JTextField实例的输入。您只能在字符串上执行parseInt()操作。

这是parseInt()方法的方法特性:

public static int parseInt(String s)
                throws NumberFormatException

要在此处解决此问题,您需要调用JTextField的getText()方法以在文本字段中返回文本。现在,在输入上调用getText()方法,并对返回的String值执行parseInt()操作,以获得所需的结果。

按如下所示修改您的actionPerformed()方法:

public void actionPerformed(ActionEvent e) {
            int celsiusValue = Integer.parseInt(input.getText());
}

有关getText()方法的更多详细信息,请参阅Java api: https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getText--

我希望这对您有帮助