Java 试图将textfield值转换为int/double,数字格式异常错误
这就是问题所在,我试图从文本字段'num1'中获取值,将其转换为int/long/double,这样我就可以在下面的侦听器中的数学函数中使用它Java 试图将textfield值转换为int/double,数字格式异常错误,java,user-interface,numberformatexception,Java,User Interface,Numberformatexception,这就是问题所在,我试图从文本字段'num1'中获取值,将其转换为int/long/double,这样我就可以在下面的侦听器中的数学函数中使用它 package calc; import java.awt.event.*; import javax.swing.*; import java.awt.*; public class calc1 extends JFrame { public JButton plus; public JButton minus; public JButton m
package calc;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class calc1 extends JFrame {
public JButton plus;
public JButton minus;
public JButton multiply;
public JButton divide;
public JTextField num1;
public JTextField num2;
public JTextField res;
public long numb1;
public long numb2;
public long result;
public String boob;
public String boob2;
public calc1(){
setSize(400,400);
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
num1 = new JTextField("Enter First Number:");
boob = num1.getText();
numb1 = Long.parseLong(boob);
add(num1);
这就是问题所在,我试图从文本字段'num1'中获取值,将其转换为int/long/double,这样我就可以在下面的侦听器中的数学函数中使用它
package calc;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class calc1 extends JFrame {
public JButton plus;
public JButton minus;
public JButton multiply;
public JButton divide;
public JTextField num1;
public JTextField num2;
public JTextField res;
public long numb1;
public long numb2;
public long result;
public String boob;
public String boob2;
public calc1(){
setSize(400,400);
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
num1 = new JTextField("Enter First Number:");
boob = num1.getText();
numb1 = Long.parseLong(boob);
add(num1);
}
我尝试了很多方法,最终得到了许多冗余变量。这是我一直得到的错误
num2 = new JTextField("Enter Second Number:");
boob2 = num2.getText();
numb2 = Long.parseLong(boob2);
add(num2);
plus = new JButton("+");
add(plus);
minus = new JButton("-");
add(minus);
multiply = new JButton("*");
add(multiply);
divide = new JButton(":");
add(divide);
listener1 boo1 = new listener1();
listener2 boo2 = new listener2();
listener3 boo3 = new listener3();
listener4 boo4 = new listener4();
divide.addActionListener(boo1);
multiply.addActionListener(boo2);
minus.addActionListener(boo3);
plus.addActionListener(boo4);
}
public class listener1 implements ActionListener{
public void actionPerformed(ActionEvent boo1){
result = numb1/numb2;
String ahmood = String.valueOf(result);
res = new JTextField(ahmood);
add(res);
}
}
public class listener2 implements ActionListener{
public void actionPerformed(ActionEvent boo2){
result = numb1*numb2;
String ahmood = String.valueOf(result);
res = new JTextField(ahmood);
add(res);
}
}
public class listener3 implements ActionListener{
public void actionPerformed(ActionEvent boo3){
result = numb1-numb2;
String ahmood = String.valueOf(result);
res = new JTextField(ahmood);
add(res);
}
}
public class listener4 implements ActionListener{
public void actionPerformed(ActionEvent boo4){
result = numb1+numb2;
String ahmood = String.valueOf(result);
res = new JTextField(ahmood);
add(res);
}
}
public static void main(String args[]){
calc1 joss = new calc1();
joss.setVisible(true);
}
线程“main”java.lang.NumberFormatException中的异常:对于输入字符串:“输入第一个数字:”
位于java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
位于java.lang.Long.parseLong(Long.java:589)
位于java.lang.Long.parseLong(Long.java:631)
在calc.calc1.(calc1.java:37)
位于calc.calc1.main(calc1.java:135)
创建用值初始化的输入文本字段“输入一些数字:”
,然后立即获取值(提示:刚才传递的值),并将其转换为长的。当然,这将抛出一个NumberFormatException
你应该做两件事:
- (临时)将该消息放在输入字段旁边的
JLabel
中李>
- (强制)不要在创建输入字段后立即获取输入值并进行转换,这没有任何意义。把那部分留给听众听
如果您仍然无法找到解决方法,请尝试一个只有一个文本字段的较小程序,使其工作,并在此基础上进行构建。我现在正在构建一个新程序,谢谢您