@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
		if(stage == INIT_STAGE) {
			System.out.println("Init Stage click " + clickCount);
			setInitButtonImage();
			
			clickCount++;
			stage = FIRST_STAGE;
		}
		else if(stage == FIRST_STAGE) {
			System.out.println("first Stage click " + clickCount);
			
			buttonAction(e, firstImageSet, secondImageSet);
	
			if(clickCount == 4) {
				System.out.println("\t change to second stage");
				clickCount = 0;
				stage = SECOND_STAGE;
				setButtonImage(secondImageSet);
				
				clickCount++;
			}
			else {
				setButtonImage(firstImageSet);
				clickCount++;
			}
				
		}
		else if(stage == SECOND_STAGE) {
			System.out.println("second Stage click " + clickCount );

			buttonAction(e, secondImageSet, thirdImageSet);
			
			if(clickCount == 2) {
				System.out.println("\t change to second stage");
				clickCount = 0;
				stage = THIRD_STAGE;
				setButtonImage(thirdImageSet);
				
				clickCount++;
			}
			else {
				setButtonImage(secondImageSet);
				clickCount++;
			}
		}
		else if(stage == THIRD_STAGE) {
			if(e.getSource().equals(leftButton)) {
				System.out.println("left BUtton clicked : image index = " + (clickCount-1) * 2);
				finalImageName = thirdImageSet.get((clickCount-1) * 2) ;
				
				leftButton.setBounds(30, 20, 550, 500);
				leftButton.setText("¥          ");
				rightButton.setVisible(false);
				
			}
			else {
				System.out.println("right BUtton clicked : image index = " + ((clickCount-1) * 2 + 1) );				
				finalImageName = thirdImageSet.get( (clickCount-1) * 2 + 1);
				
				rightButton.setBounds(30, 20, 550, 500);
				rightButton.setText("¥          ");
				leftButton.setVisible(false);
				
			}			
		}
	}