IT/Java

자바연습-3-버블게임

인러너 2018. 5. 11. 16:46

처음 만들었을 때는 되게 재밌었다


마우스가 보이지 않는데  마우스로 클릭할때마다 이미지가 생성된다 

열심히 눌렀다





소스코드

클래스는 두개로 나눴다 

패널에서 다 만들고 프레임에 붙이는 형식이다. 


혼자 만들려고 했을 때는 되게 막막했다 스레드를 어디에 넣어줘야 할지.. 

이미지 하나를 한 스레드로 만들어 주는것이 포인트 !



1. 패널클래스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
 
public class MainPanel extends JPanel{
    
    public MainPanel() {
        setLayout(null);
        addMouseListener( new MyMouseAdapter());
        
    }
    
    class MyMouseAdapter extends MouseAdapter    {
        
        public void mousePressed(MouseEvent e) {
            
            BThread bt = new BThread(e.getX(),e.getY());
            bt.start();
            
        }
        
    }
    
    class BThread extends Thread {
        
        JLabel label ;
        
        public BThread(int bx, int by) {
            
            ImageIcon img = new ImageIcon("bubble.jpg");
            label = new JLabel(img);
            label.setSize(img.getIconWidth(), img.getIconHeight());
            label.setLocation(bx, by);
            add(label);
                        
        }
        public void run() {
            
            while(true) {
                int x = label.getX();
                int y = label.getY()-1;
                
                if(y<0) {
                    remove(label);
                    repaint();
                }
                label.setLocation(x, y);
                repaint();
                
                try {sleep(5);}
                catch(InterruptedException e) {}
                    
                
            }
        }
        
    }
 
}
 
cs


2. 프레임 클래스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
 
public class MainFrame extends JFrame{
    
    public MainFrame() {
        
        setSize(800,800);
        setTitle("BubbleGame");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        MainPanel mp = new MainPanel();
        add(mp);
        setVisible(true);
                
    }
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        new MainFrame();
    }
 
}
 
cs