본문 바로가기
IT/Java

두더지 게임

by Jeami 2013. 8. 16.
반응형



패키지 : day06 / 클래스 :  Exam_16

자바 두더지 게임

추천은 블로거에게 큰 힘이 됩니다. 양질의 정보로 보답할게요(로그인 불필요)^^



소스 설명은 업데이트 하겠습니다.

package day06;

import java.awt.*;

import java.awt.event.*;


import javax.swing.*;

class Dudu extends JFrame implements ActionListener, Runnable{

ImageIcon ii = new ImageIcon("c:\\dudu.jpg");

private JButton jbt[] = new JButton[12];

private JButton start = new JButton("시작");

private JButton end = new JButton("종료");

private JLabel jlb = new JLabel("점수 : 0");

private JLabel time_jlb = new JLabel("시간 => 0:10");

private BorderLayout bl = new BorderLayout(10,10);

private JPanel jp1 = new JPanel();

private GridLayout gl1 = new GridLayout(3,4);

private JPanel jp2 = new JPanel();

private GridLayout gl2 = new GridLayout(1,2);

private JPanel jp21 = new JPanel();

private FlowLayout fl21 = new FlowLayout(FlowLayout.RIGHT);

private int randomsu = 0;

private int count = -1;

public Dudu(String title){

super(title);

this.init();

this.start();

super.setSize(300,200);

Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

int xpos = (int)(screen.getWidth()/2 - super.getWidth()/2);

int ypos = (int)(screen.getHeight()/2 - super.getHeight()/2);

super.setLocation(xpos, ypos);

super.setResizable(false);

super.setVisible(true);

}

public void init(){

Container con = this.getContentPane();

con.setLayout(bl);

con.add("North", time_jlb);

con.add("Center", jp1);

jp1.setLayout(gl1);

for(int i=0; i<12; ++i){

jbt[i] = new JButton();

jp1.add(jbt[i]);

}

off_button();

con.add("South", jp2);

jp2.setLayout(gl2);

jp2.add(jlb);

jp2.add(jp21);

jp21.setLayout(fl21);

jp21.add(start);

jp21.add(end);

}

public void start(){

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

start.addActionListener(this);

end.addActionListener(this);

for(int i=0; i<12; ++i){

jbt[i].addActionListener(this);

}

} //end


public void actionPerformed(ActionEvent e) {

if (e.getSource() == start){

time_jlb.setText("시간 => 0:10");

jlb.setText("점수 : 0");

count=-1;

Thread th = new Thread(this);

th.start();

on_button();

random(0);

}else if (e.getSource() == end){

System.exit(0);

}

for(int i=0; i<12; ++i){

if (e.getSource() == jbt[i]){

random(i);

}

}

} //end


public void off_button(){

for(int i=0; i<12; ++i){

jbt[i].setEnabled(false);

}

} //end


public void on_button(){

for(int i=0; i<12; ++i){

jbt[i].setEnabled(true);

}

} //end


public void run(){

int time = 10;

while(true){

try{

Thread.sleep(1000);

}catch(InterruptedException e){}

time--;

if (time == 0) {

time_jlb.setText("게임이 끝났습니다.");

off_button();

break;

}

time_jlb.setText("시간 => 0:0"+time);

}

} //end


public void random(int i){

if (i != randomsu) return;

count++;

jbt[randomsu].setIcon(null);

randomsu = (int)(Math.random() * 12);

jbt[randomsu].setIcon(ii);

jlb.setText("점수 : " + count);

}

} //end


public class Exam_16{

public static void main(String[] ar) {

Dudu  ob = new Dudu("두더지게임");

}

} //class end


실행화면








반응형

'IT > Java' 카테고리의 다른 글

두더지 게임 소스 2-1  (1) 2013.08.16
Thread(스레드) - 시간 출력  (0) 2013.08.07
awt 기본(화면 띄우기)  (0) 2013.08.07
Interface(인터페이스)  (0) 2013.07.01
Java의 Generic(제너릭) 원리(간단정리)  (0) 2013.06.25

loading