2014-04-12 96 views
0

我想開發一個簡單的計算器軟件,看起來像下面的圖片。它應該要求用戶輸入第一個數字,然後輸入第二個數字,並向用戶提供選擇(Add或Subtract),最後在下面的框中顯示結果。 到目前爲止,我只是做了GUI,我想知道如何將這些代碼添加到我所做的代碼中。簡單的計算器(ADD - Sub)

enter image description here

這裏是我的代碼

import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    class SimpleMath extends JFrame /*implements ActionListener*/ 
    { 

    private JLabel label ; //Firstnumber 
    private JLabel labe2; // Second number 
    private JLabel labe3; // result 
    private JButton Add;// add 
    private JButton Sub; // subtrack 
    private JTextField inputLine1;// enter the firstnumber 
    private JTextField inputLine2;//enter the second number 
    private JTextArea textArea;//the result 

    public static void main (String [] args) 
    { 

    } 

    public SimpleMath() { 
    Container contentPane = getContentPane(); 
     setSize  (300, 300); 
     setResizable (false); 
     setTitle  ("Simple Math"); 
     setLocation (200, 300); 
     contentPane.setLayout(null); 

     //lebal 1 
     label = new JLabel("First number") ; 
     label. setBounds(15 , 30 , 150 , 50) ; 
     contentPane.add(label); 

     //lebal2 
      labe2 = new JLabel("Second number") ; 
     label. setBounds(15 , 30 ,1700 , 70) ; 
     contentPane.add(label); 

     //lebal3 
     labe3 = new JLabel("Result") ; 
     label. setBounds(15 , 30 ,200 , 100) ; 
     contentPane.add(label); 


     //text input1 first number 
     inputLine1 = new JTextField(); 
     inputLine1.setColumns(10); 
     inputLine1.setFont(new Font("Courier", Font.PLAIN, 14)); 
     inputLine1. setBounds(15 , 70 , 150 , 25) ; 
     contentPane.add(inputLine1); 


     // text input2 second number 
     inputLine2 = new JTextField(); 
     inputLine2.setColumns(10); 
     inputLine2.setFont(new Font("Courier", Font.PLAIN, 14)); 
     inputLine2. setBounds(15 , 70 , 150 , 25) ; 
     contentPane.add(inputLine2); 

     // add button 
     Add= new JButton("search "); 
     Add. setBounds(200 , 70 , 220 , 60) ; 
     contentPane.add(Add) ; 

     // sub button 
     Sub= new JButton("search "); 
     Sub. setBounds(200 , 70 , 240 , 60) ; 
     contentPane.add(Sub) ; 


     //text area that will show the result of the add and sub 
     textArea = new JTextArea(); 
     textArea.setColumns(5); 
     textArea.setRows(2); 
     textArea.setBorder(BorderFactory.createLineBorder(Color.red)); 
     textArea.setEditable(false); 
     textArea. setBounds(40 , 250 , 300 , 100) ; 
     contentPane.add(textArea); 

      return ; }} 
+0

創建JFrame的一個實例,你的主要方法是相當空 –

+0

你只需要事件偵聽器連接到你的按鈕,在他們做的操作和顯示結果 – GoldRoger

+0

http://docs.oracle.com /javase/tutorial/uiswing/events/actionlistener.html – RKC

回答

0

如果你正在使用NetBeans來設計您的GUI然後只需雙擊「添加」按鈕,然後將下面的代碼添加到它

int firstNumber = Integer.parseInt(inputline1.getText()); 
int secondNumber = Integer.parseInt(inputline2.getText()); 
int sum = firstNumber + secondNumber; 
textArea.setText(Integer.ToString(sum)); 
+0

這個問題被標記爲jGrasp,我懷疑他們正在使用Netbeans。 –

+0

然後她必須將上面的代碼添加到按鈕 –

+0

的動作偵聽器@ZohaibAslam謝謝,請問我可以如何做動作偵聽器嗎? Netbeans中的 – Lolieta

0

我建議您閱讀本主題以改善您的佈局。 Using Layout Managers 這是關於在Swing中使用佈局管理器的非常豐富的材料。

你必須在你的主要方法中實例化你的JFrame。這裏有一個例子:

SimpleMath sm = new SimpleMath(); 
sm.setVisible(true); 

如果你想要按鈕來執行一些動作,你必須添加動作監聽器。下面是我會怎麼做一個例子:

Add.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent arg0) { 
     // Read the first number 
     int first = Integer.parseInt(inputLine1.getText()); 
     // Read the second number 
     int second = Integer.parseInt(inputLine2.getText()); 
     // Set the result 
     int result = first + second; 
     textArea.setText(String.valueOf(result)); 
    } 
}); 
+0

謝謝你有幫助 – Lolieta

0

不是整型的,你可以使用雙,這樣就可以在小數獲取值也。

double First = Double.parseDouble(jTextField1.getText()); 

// Read the Second number 

double Second = Double.parseDouble(jTextField2.getText()); 

// Set the Result 


double Result = First/Second; 


    jLabel1.setText(String.valueOf(Result));