본문 바로가기

프로그래밍/자바(JAVA)

[자바/JAVA] 자바 계산기 만들기 (뷰어만)

자바 계산기 만들기 (뷰어만.)


import java.awt.*;

class Calculator{
 public static void main(String[] args){
  new Calculator();
 }

 private Frame f = new Frame("Calculator");

 Calculator(){
  init();
  start();
  f.setSize(320,270);
  f.setVisible(true);
 }

 private Label lb = new Label("0", Label.RIGHT);

 private Label lb_temp = new Label("");

 private Button[] b1 = new Button[4];
 private Button[] b2 = new Button[3];
 private Button[][] b3 = new Button[4][5];

 private MenuBar mb = new MenuBar();

 private Menu m1 = new Menu("편집(E)");
 private Menu m2 = new Menu("보기(V)");
 private Menu m3 = new Menu("도움말(H)");

 private Cursor cs = new Cursor(Cursor.TEXT_CURSOR);

 int i, j;

 void init(){
  f.setLayout(new CardLayout(5, 5));
  f.setBackground(Color.lightGray);
  f.setResizable(false);

 //메뉴부분
  m1.add("복사(C)              Ctrl+C ");
  m1.add("붙여넣기(P)      Ctrl+V ");
  m2.add("일반용(T)");
  m2.add("공학용(S)");
  m2.addSeparator();
  m2.add("자릿수 구분 단위(I)  ");
  m3.add("도움말 항목(H)  ");
  m3.addSeparator();
  m3.add("계산기 정보(A)  ");

  mb.add(m1);
  mb.add(m2);
  mb.add(m3);

  f.setMenuBar(mb);

 //버튼,숫자부분
  Panel p = new Panel(new BorderLayout());

  //젤위에 있는 숫자입력하는 부분
  Panel p1_1 = new Panel(new CardLayout(5, 5));
  Panel p1 = new Panel(new FlowLayout(FlowLayout.RIGHT));
  p1.setBackground(Color.white);
  p1.setCursor(cs);
  p1.add(lb);
  p1_1.add("view",p1);
  p.add("North",p1_1);

   //왼쪽 MC,MR,MS,M+ 부분 
  Panel p2_1 = new Panel(new CardLayout(5, 5));
  Panel p2 = new Panel(new BorderLayout());
  Panel p2_2 = new Panel(new GridLayout(4, 1, 5, 5));
  Panel p2_3 = new Panel(new FlowLayout());
  String[] str1 = {"MC","MR","MS","M+"};
  for (i=0;i<b1.length ;i++ ){
   b1[i] = new Button(str1[i]);
   b1[i].setForeground(Color.red);
   p2_2.add(b1[i]);
  }
  p2_3.setBackground(Color.lightGray);
  p2_3.add(lb_temp);
  p2.add("North",p2_3);
  p2.add("Center",p2_2);
  p2_1.add("view",p2);
  p.add("West",p2_1);

  //중간에 있는 숫자입력 및 계산하는 부분
  Panel p3 = new Panel(new BorderLayout());
   //빽스페이스 있는 부분
  Panel p3_1 = new Panel(new CardLayout(5, 5));
  Panel p3_11 = new Panel(new GridLayout(1, 3, 5, 5));
  String[] str2 = {"Backspace","CE","C"};
  for (i=0;i<b2.length ;i++ ){
   b2[i] = new Button(str2[i]);
   b2[i].setForeground(Color.red);
   p3_11.add(b2[i]);
  }
  p3_1.add("view",p3_11);
  p3.add("North",p3_1);
   //숫자 및 계산하는거 있는 부분
  Panel p3_2 = new Panel(new CardLayout(5, 5));
  Panel p3_21 = new Panel(new GridLayout(4, 5, 5, 5));
  String[][] str3 = {{"7","8","9","/","sqrt"}, {"4","5","6","*","%"}, {"1","2","3","-","1/x"}, {"0","+/-",".","+","="}};
  for (i=0;i<4 ;i++ ){
   for (j=0;j<5 ;j++ ){
    b3[i][j] = new Button(str3[i][j]);
    if (j==3){
     b3[i][j].setForeground(Color.red);
    }else if (j==4 && i==3){
     b3[i][j].setForeground(Color.red);
    }else{
     b3[i][j].setForeground(Color.blue);
    }
    p3_21.add(b3[i][j]);
   }
  }
  p3_2.add("view",p3_21);
  p3.add("Center",p3_2);
  p.add("Center",p3);

  f.add("view",p);
 }

 void start(){
  
 }
}

  

<실행 결과>