패키지 : 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 |