계획없이 만들다보니. 코드를 막짠곳이 몇몇 보인다.아무튼.코드 설명은 주석을 달았다. card_back : 카드의 뒷면 이미지img_1~5 :카드의 앞면이미지 (10개니까 2쌍 5개)\intro_image : 게임 인트로화면 배경이미지Card.java import java.awt.Image; import java.awt.Toolkit; public class Card { final static int WIDTH = 100; //카드의 가로 final static int HEIGHT = 150; //카드의 세로 int x,y; //카드의 x,y 위치 int state= 0; //현재 카드의 상태 (뒷면,앞면,카드완성) private Image backImg = Toolkit.getDefaultToolkit..
이제 GameStart에 화살표가 위치한 상태에서 엔터키를 눌렀을 경우 화면이 게임화면으로 교체되어야 한다 우선 ViewController 클래스에 화면을 바꾸는 메소드를 추가한다. public void showGamePanel(){ contentPane.remove(introPanel); //introPanel을 제거한다 contentPane.add(new GamePanel()); //새로운 Panel을 추가한다. mainFrame.setVisible(false); //메인프레임을 보이지 않게한 후 mainFrame.setVisible(true); //다시 보이게 한다. } 다음은 setVisible을 해주는 이유는 컴포넌트를 교체 후에는 화면이 바뀌지 않는다. 그래서 찾은 방법이 setVisible ..
앞서 프레임자체에서 introPanel을 생성하여 추가 하였는데. 이런 frame에 view를 변경하거나 추가하는 일을 Controller클래스로 위임하기로 하였다. 일단 바뀐 코드를 보겠다. --MainFrame Class-- import java.awt.Point; import java.awt.Dimension; import javax.swing.JFrame; public class MainFrame extends JFrame{ viewController controller; //생성자로 프레임의 이름을 받아 그대로 부모클래스로 전달해준다. //super()
JPanel을 상태별 화면으로 사용할것이므로 JPanel을 상속받는 클래스를 생성하자 import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import javax.swing.JPanel; //Panel단위로 화면이동을 하기위해 각화면은 Panel을 //상속받아 클래스를 작성한다 public class IntroPanel extends JPanel{ Image intro_image; public IntroPanel() { //기본툴킷 클래스로부터 getImage메소드를 활용하여 이미지를 불러온다 intro_image = Toolkit.getDefaultToolkit().getImage("intro_image.jpg"); } //..