2016-02-12 48 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。 –

相關問題