Java JTextField输入到Double

Java JTextField输入到Double,java,swing,jtextfield,Java,Swing,Jtextfield,我正在开发一个应用程序,它可以获得用户输入文本字段的快门速度。用户可以以分数“1/250”或整数的形式输入快门速度。从这个输入,我想把它转换成一个double类型的变量 但当我尝试输入“1/250”时,我会出现许多错误,第一个错误是: Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "1/250" 我知道这与输入中的“/”有关,但我如何将分数转换为双精度

我正在开发一个应用程序,它可以获得用户输入文本字段的快门速度。用户可以以分数“1/250”或整数的形式输入快门速度。从这个输入,我想把它转换成一个double类型的变量

但当我尝试输入“1/250”时,我会出现许多错误,第一个错误是:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: 
    For input string: "1/250"
我知道这与输入中的“/”有关,但我如何将分数转换为双精度呢

        JTextField userShutter = new JTextField("", 10);
        userShutter.setBounds(60, 180, 50, 25);

        userShutter.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                double shutter = Double.parseDouble(userShutter.getText());
                baseShutterSpeed = shutter;
            }
        });

        // Calculate shutter speed
        calculator(stopValue, baseShutterSpeed);

您只需使用从textfield返回的字符串,并根据/字符将其拆分为两部分。然后,你可以使用这两个数字,然后像使用基础数学一样将它们除以,得到双精度

String str = userShutter.getText();
String[] arr = str.split("/");

double answer = Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]);
System.out.println(answer);

“1/250”
不是一个
double
。。。你为什么会认为是这样?您需要获取文本,在
/
分隔符上拆分,然后可以开始将文本转换为数字,并执行所需的数学运算以将其转换为适当的双精度value@MadProgrammer“您需要…”。是否使用
ScriptEngine
计算表达式?好吧,也许是我的懒惰让我这么说。@AndrewThompson我成长在一个没有“华丽的pancy”脚本引擎的时代;)<代码>用户快门.setBounds(60,180,50,25)Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或与布局填充和边框一起使用。