2014-04-12 4 views
0

아래 그림과 같은 간단한 계산기 소프트웨어를 개발하려고합니다. 사용자에게 첫 번째 숫자를 입력 한 다음 두 번째 숫자를 입력하고 사용자에게 (추가 또는 빼기) 중 하나를 선택하도록 요청하고, 결과를 아래 상자에 마지막으로 표시해야합니다. 지금까지 GUI를 수행 했으므로이 코드를 내가 수행 한 코드에 어떻게 추가 할 수 있는지 알고 싶습니다. 여기 간단한 계산기 (추가 - 서브)

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

꽤 비어 /javase/tutorial/uiswing/events/actionlistener.html – GoldRoger

+0

http://docs.oracle.com을 결과를 표시 할 필요가 – RKC

답변

0

당신은 그럼 그냥 더블 클릭하여 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 감사합니다. 어떻게 행동 청취자를 제발 할 수 있습니까? – 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

Integer 대신 double을 사용하여 10 진수 값을 얻을 수도 있습니다.

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));