[기타묻고답하기 이용안내]

ca.jpg

여기까지 만든거구요. 문제중 못하고 있는게... 아래부분입니다.

********************************************************** 

제곱(x^2),삼각함수 계산(sin,cos,tan) 이벤트 하는거랑요.

연산 버튼 클릭 후 =으로 결과값 출력후..

다시 숫자 버튼 클릭할 경우 화면 클리어 되게 하는거요.

**********************************************************

 

현재까지 만든코팅부분입니다.

매소드 함수 쓰로고 하느데 어떻게 써야할지 모르곘네여. ㅜㅜ

 

./to 로되어있는부분은 /뺴주시면 되요. 헝글 게시판이 ./to 에서 /뺀면 금지단어라 /임의로 넣은것입니다.

 

================================================================================

 

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

class Calculator extends JFrame implements ActionListener{ // ActionListener 포함
 
 public JTextField resultText;
 public JButton buttonArray[];
 public JPanel buttonGroup;
 public JButton clearButton;
 public JButton exitButton;
 
 public double result=0; // 결과 값
 public boolean clearText=true;
 public  int previousEventName=0; // 이전 연산자 이벤트 정보 
 
 public Calculator(String title){
  
  clearButton = new JButton("Clear");
  exitButton = new JButton("종료하기");
  
  // 결과 표시
  resultText = new JTextField(50);
  setLayout(new BorderLayout());
  resultText.setEditable(false);
  
  // 버튼 구성
  buttonGroup = new JPanel();
  buttonArray = new JButton[20]; 
    // 버튼 생성
  for (int i = 0; i <= 9; i++)
  {
   
   buttonArray [i]= new JButton(Integer./toString(i));
  }
  buttonArray[10] = new JButton("/");
  buttonArray[11] = new JButton("*");
  buttonArray[12] = new JButton("-");
  buttonArray[13] = new JButton("+");
  buttonArray[14] = new JButton(".");
  buttonArray[15] = new JButton("x^2");
  buttonArray[16] = new JButton("sin");
  buttonArray[17] = new JButton("cos");
  buttonArray[18] = new JButton("tan");
  buttonArray[19] = new JButton("=");
  
  buttonGroup.setLayout(new GridLayout(4,5));
 
  for( int i = 7; i <= 10; i++)
  {
   buttonGroup.add(buttonArray[i]);
  }
  buttonGroup.add(buttonArray[16]);
  
  for( int i = 4; i <= 6; i++)
  {
   buttonGroup.add(buttonArray[i]);
  }
  
  buttonGroup.add(buttonArray[11]);
  buttonGroup.add(buttonArray[17]);
  
  for( int i = 1; i <= 3; i++)
  {
   buttonGroup.add(buttonArray[i]);
  }
  buttonGroup.add(buttonArray[12]);
  buttonGroup.add(buttonArray[18]);
    
  buttonGroup.add(buttonArray[0]);
  for( int i = 15; i >= 13; i--)
  {
   buttonGroup.add(buttonArray[i]);
  }
  buttonGroup.add(buttonArray[19]);
  ;
  

  add(resultText, BorderLayout.NORTH);
  add(buttonGroup, BorderLayout.CENTER);
  add(clearButton, BorderLayout.EAST);
  add(exitButton, BorderLayout.SOUTH);
 
  // 메뉴 구성
  JMenuBar menuBar = new JMenuBar();
  setJMenuBar(menuBar);
  JMenu fileMenu = new JMenu("File");
  JMenu editMenu = new JMenu("Edit");
  menuBar.add(fileMenu);
  menuBar.add(editMenu);
   
  // 풀다운 메뉴 추가
  JMenuItem newMenuItem = fileMenu.add("New");
  fileMenu.addSeparator();
  JMenuItem openMenuItem = fileMenu.add("Open");
  fileMenu.addSeparator();
  JMenuItem exitMenuItem = fileMenu.add("Exit");
  
  
  JMenuItem cutMenuItem = editMenu.add("Cut");
  editMenu.addSeparator();
  JMenuItem clearMenuItem = editMenu.add("ClearM");
  
    // 이벤트 등록
  for ( int i = 0; i < buttonArray.length; i++)
  {
   buttonArray[i].addActionListener(this);
  } 
   
  clearButton.addActionListener(this);
  exitButton.addActionListener(this);
  clearMenuItem.addActionListener(this); // 메뉴 이벤트 등록
  exitMenuItem.addActionListener(this);
  
  setTitle(title);
  setSize(700,500);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
 }
 
 public void actionPerformed(ActionEvent e)
 {
  String eventName="";
  String command=e.getActionCommand();
  int numberButton=0;
  
  eventName=e.getActionCommand(); // getSource()

  
  if(command.equals("종료하기") | command.equals("Exit")){
   System.exit(0);
  }
  
  else if(eventName == "Clear" | eventName == "ClearM"){ // Clear 버튼 및 메뉴의 ClearM
   resultText.setText("");
  }
    
  else if(eventName == "."){ // . 버튼 이벤트인 경우
   resultText.setText(resultText.getText() + eventName);
  }
  else if(eventName == "/"){// / 버튼 이벤트인 경우
   result = Double.valueOf(resultText.getText());
   previousEventName=10; // 나누기
   clearText=true;
  }
  else if(eventName == "*"){// * 버튼 이벤트인 경우
   result = Double.valueOf(resultText.getText());
   previousEventName=20; // 곱하기
   clearText=true; 
  }
  else if(eventName == "+"){
   result = Double.valueOf(resultText.getText());
   previousEventName=30; 
   clearText=true;
  }
  else if(eventName == "-"){
   result = Double.valueOf(resultText.getText());
   previousEventName=40;
   clearText=true; 
  }
  
  
  else if(eventName == "="){ //  = 버튼 이벤트인 경우
   switch(previousEventName){
   case 10: // 나누기
    result /= Double.valueOf(resultText.getText());
    break;
   case 20:// 곱하기
    result *= Double.valueOf(resultText.getText());
    break;
   case 30:
    result += Double.valueOf(resultText.getText());
    break;
   case 40:
    result -= Double.valueOf(resultText.getText());
    break;
   }
   
   resultText.setText(Double./toString(result));
  }
  else{ // 숫자 버튼 이벤트
   numberButton=Integer.parseInt(eventName);
   switch(numberButton){
   case 0:
   case 1:
   case 2:
   case 3:
   case 4:
   case 5:
   case 6:
   case 7:
   case 8:
   case 9:
    if(clearText){ // 연산자 버튼 입력 했을 경우 화면 삭제
     resultText.setText("");
     clearText=false;
    }
       
    resultText.setText(resultText.getText() + numberButton);
    break;
   
   }
   
  }
  
 }
 
 
}

public class JavaCalcu {
 public static void main(String[] args){
  new Calculator("계산기");
  
 }
}

======================================================================

첨부
엮인글 :

캐치보올

2011.05.25 15:08:25
*.145.140.176

pow, sin, cos, tan 등의 함수는 java.lang.Math 에 있습니다.

pow(x,y) x the base of the operation. 

y the exponent of the operation

3의 제곱은 pow(3,2) 가 되겠네요.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 [기타묻고답하기 게시판 이용안내] [1] Rider 2017-03-14 54167
45582 전남친에게 생긴 새여친.. 이래서 더 밉다(질투난다)?! [20] 춘삼이♡ 2010-11-11 5917
45581 사진크기 질문이요 픽셀과 cm .... [4] 1212 2010-11-09 5917
45580 올뉴투싼 1.7 VS 2016 스포티지 선택해주세요, 고민중입니다ㅜ [14] 미니미니★ 2015-10-13 5911
45579 led tv 47인치와56인치..크기차이요... [20] ^^ 2010-12-19 5905
45578 남자 예물시계 50~100만원사이 추천 부탁해요^^ [16] 혀용 2012-10-02 5899
45577 현관문 손잡이 혼자 교체 가능한가요? file [6] 즈타 2014-12-16 5889
45576 간이과세자 부가세 신고방법좀 도와주세요... 궁금해 2011-01-15 5881
45575 아무 정보 없는 비행기편 규정에 대해 알 방법이 없을까요? [6] 쀵쀵뿡 2016-06-29 5870
45574 컴퓨터 무한재부팅?..... [1] 펠넬델렐 2017-03-12 5863
45573 아웃룩에서 보낸메일 취소? 어떻게 하죠? [10] 박히철 2010-11-04 5862
45572 소렌토R엔진 소음 관련 질문드립니다... [6] 유키카제_88... 2011-03-28 5849
45571 여자친구와 생일선물로 다퉜어요.. [35] 눈치없는남자 2017-01-18 5845
45570 라쿠텐 구매대행 관세에 대해 자세히 아시는분..문의드립니다.... [7] 마랑 2010-11-13 5844
45569 남친 전여친이 고집세고 성격 센 여자였다는데요 [11] 름름 2010-12-28 5833
45568 마음 떠난 여자의 마음을 돌릴 수는 없겠죠?? [15] 비로거 2011-06-21 5832
45567 지하철에서 인터넷(노트북) 어떻게 하는건가요....? [13] 궁금 2015-12-01 5830
45566 여자들... 연인과 헤어진 후 나쁜 기억? 좋은 기억? [18] 궁금 2011-05-29 5828
45565 물집 터뜨려야 하는가 말아야 하는가 [10] 부자가될꺼야 2013-10-28 5825
45564 남자 영어이름 추천 부탁해요! [38] th 2013-07-31 5825
45563 콤프레샤...에어타카 잘 아시는분 계신가요?? [8] 휴~~ 2012-09-04 5819