2016-02-12 102 views
0

我试图创建一个简单的计算器,但当我尝试将操作添加到按钮时出现此错误。该方法parsedouble双字符串类型double不适用于参数double

在double类型的方法parsedouble串不适用于参数双

我与数字1,数字和结果的错误,当我尝试加倍的文本,相反转换。

我无法将JTextField中转换为字符串这会影响我创建

这里的框架是我的代码: 进口java.awt中的*;

public class ShowGridLayout extends JFrame { // Declaring the class 

public ShowGridLayout() { 
    getContentPane().setLayout(new GridLayout(4,2)); 
    JLabel label = new JLabel("First Number"); 
    getContentPane().add(label); 
    JTextField text = new JTextField(8); 
    getContentPane().add(text); 
    JLabel label1 = new JLabel("Second Number"); 
    getContentPane().add(label1); 
    JTextField text1 = new JTextField(); 
    getContentPane().add(text1); 
    JLabel label2 = new JLabel("Result is"); 
    getContentPane().add(label2); 
    JTextField text2 = new JTextField(); 
    text2.setEditable(false); 
    getContentPane().add(text2); 
    JButton btn = new JButton("Click here"); 
    getContentPane().add(btn); 
    setVisible(true); 
    setSize(400,200); 
    setResizable(false); 
    setLocationRelativeTo(null); 

    btn.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      double number1, number2, result; 
      try { 
       number1 = Double.parseDouble(text); 
       number2 = Double.parseDouble(text1); 
       result = number1*number2; 
       text2.setText(Double.toString(result)); 
      } catch(Exception e1){ 
       JOptionPane.showMessageDialog(null, "Please add a number"); 
      } 
     } 
    }); 
} 



public static void main (String args[]) { // Creating the main method 
    ShowGridLayout frame = new ShowGridLayout(); 
} 
} 
+5

'text'是一个'JTextField',而不是'String'。你不能在'JTextField'上使用'Double.parseDouble',你必须在'JTextField'的_contents_上使用它,你必须提取它。 –

+0

嗨路易斯,你能解释更多关于提取物吗? –

回答

1

使用

number1 = Double.parseDouble(text.getText()); 
number2 = Double.parseDouble(text1.getText()); 

解析JTextField的实际内容。

+0

嗨吉姆, 由于某种原因它不工作! –

+0

“出于某种原因”...错误信息是什么?在尝试解析它之前,你能打印出字符串值吗?这是一个有效的号码吗? –

+0

它现在可以工作,我需要在JTextField之前添加(final),非常感谢你,但我不明白为什么它需要final。 –

相关问题