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

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
번호 제목 글쓴이 날짜 조회 수
공지 [기타묻고답하기 게시판 이용안내] [1] Rider 2017-03-14 54272
9814 빈칸에 들어갈 숫자는? [24] 모스키토 2011-05-25 1505
9813 신호위반 고지서 날라왔는데요.... [9] 죄송 2011-05-25 1539
9812 아이튠즈 백업질문요 [2] kkk 2011-05-25 515
9811 !! 핼프 !!! 포스퀘어가 뭔가요? ^^; [2] 날라댕기자_... 2011-05-25 810
9810 올레길 걸을때 신을 신발 추천해 주세요 [5] 레이서딴 2011-05-25 1567
9809 하얏트호텔 풀사이드 같은 바베큐 부페... 슈슈슉 2011-05-25 820
9808 네이트 온 / 홈페이지 하고 메신저가 비번이 서로 다르나요? [2] 나도나도 2011-05-25 676
» JAVA 고수님 도와주세요. 계산기 거의 다 만들었는데.. sin,cos.tan,x^2부분... file [1] java도와주... 2011-05-25 5282
9806 ATi 그래픽카드 5천번대 추천해 주세요~~ [2] capsule 2011-05-25 532
9805 혹시 전세버스 관련하여 아시는분! [4] 버스 2011-05-25 482
9804 바이크 렌탈시 알아야할점 [4] 호롤루룰 2011-05-25 867
9803 캐논 550D를 중고로 구입하고 싶은데 어디서 찾아봐야 할까요? [3] 벽오 2011-05-25 518
9802 여직원 16억원 횡령사건을 보고... [5] 검푸^^ 2011-05-25 1098
9801 데탑을 어떻게 처분하나요? [4] 안알로 2011-05-25 613
9800 종합소득세 신고 도와주세요ㅠ_- [4] ㅇㅇ 2011-05-25 529
9799 자판기 추천 부탁합니다. [2] 커피 2011-05-25 524
9798 전기면도기 필립스 브라운 둘다 써보신분 계신가요? [4] ㅁㄴㅇㄹ 2011-05-25 1865
9797 정말 가기 싫은 결혼식- [16] 궁금 2011-05-25 1471
9796 꽃을든남자 먹물 크림 칼라 염색약 쓰시는 분 계신가요? file [2] 123 2011-05-25 1522
9795 기름값이 계속 내리네요? [6] 기름 2011-05-25 738