我是一名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
答案 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--。
我希望这对您有帮助