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

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 54268
45594 내일 눈 많이 온다는데 지방에서 차타고 하이원 갈 수 있을까요?? [3] 일상생활탈출 2013-11-26 203
45593 급 질문합니다. [3] 궁금 2013-12-03 203
45592 뉴에라 한번도 안써봤는데. 올해는 쓰고싶어여... [8] 김군임 2013-12-05 203
45591 부동산계의 헝글있나요? [3] 알려주세욧 2013-12-10 203
45590 [4] 2014-01-16 203
45589 헝글에 폰으로 사진 업로드 [6] 마이 2020-04-05 203
45588 아니 왜 자꾸 전 PC에서 로그인이 안될까요? [3] 조낭 2020-09-25 203
45587 디자인 컴퓨터 중고가문의 ! [25] JUAN 2020-11-30 203
45586 네버썸머에보 데크 구매대행이나 판매처좀 알려주세요~ 마이더스 2012-03-11 204
45585 XXL 매거진 정기 구독자님들 질무요... [1] Dave™ 2012-04-10 204
45584 닉네임 안바꿔지나요? [2] 초강초보더 2012-06-18 204
45583 계곡 추천 잣이나까잡숴!! 2012-06-21 204
45582 전선업계에 근무하시는 분!! 훌러덩훌렁 2012-06-25 204
45581 조그만 회사 광고기획 조언 좀 해 주세요! [2] 타임 2012-10-25 204
45580 발맛사지.... [5] 북쟁이레이다 2012-11-16 204
45579 소보법 [2] 소보 2012-11-29 204
45578 휘팍셔틀예약 [3] mr.kim_ 2012-12-06 204
45577 정말궁굼합니다. -2a-2a= 답이 뭔가요? [10] 리턴투초딩 2013-01-26 204
45576 엑셀질문입니다. file [3] 음.. 2013-02-06 204
45575 모 통신회사 개인정보건 [5] 무용부회장 2013-02-12 204