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 |