Page 777 - 2
P. 777

pieceNumber[i] = i;
                     }
                     // 패널 생성 및 컴포넌트 장착
                     panel = new MyPanel();
                     panel.setLayout(new GridLayout(pieces,pieces));
                     btns = new JButton[totalPieces];
                     for(int i = 0 ; i< totalPieces; i++)
                     {
                          btns[i] = new JButton();
                          btns[i].addMouseMotionListener(this);
                          btns[i].addMouseListener(this);
                          panel.add(btns[i]); //   컴포넌트 장착
                          if(i < totalPieces-1)
                          {
                               btns[i].setOpaque(false);
                               btns[i].setEnabled(false);
                          }
                     }

                     // 그림 섞기 버튼 생성 및 이벤트 핸들러 장착
                     divideImageBtn = new JButton( 그림 섞기"            ");
                     divideImageBtn.addActionListener(this);

                     // 프레임에 컴포넌트 장착
                     frm.add(panel, "Center");
                     frm.add(divideImageBtn, "South");

                     // 프레임 기본 설정
                     frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                     frm.setTitle( 나의 히어로 아카데미아"              "); // 원하는 제목 설정
                     frm.pack();
                     frm.setVisible(true);
                 }





                 class MyPanel extends JPanel
                 {
                     public void paint(Graphics g)
                     {
                          super.paint(g);
                          int pieceWidth = img.getWidth(null) / pieces ;
                          int pieceHeight = img.getHeight(null) / pieces;

                          for(int y = 0 ; y<pieces ; y++)
                          {
                               int dy = y*pieceHeight;
                                   for(int x = 0; x < pieces ; ++x)
                                   {
                                       int dx = x*pieceWidth;
                                    int number = pieceNumber[y*pieces + x];
                                       int sy = (number/pieces)*pieceHeight;
                                    int sx = (number%pieces)*pieceWidth;
                                    g.drawImage(img, dx, dy, dx+pieceWidth,            dy+pieceHeight,
                                                             sx, sy, sx+pieceWidth, sy+pieceHeight,
            null);
                               }
                          }
                          btns[pressedBtn].setBackground(null); //        이미지 아래에 있는 버튼을 다시


                                                         - 777 -
   772   773   774   775   776   777   778   779   780   781   782