관리 메뉴

취미개발 블로그와 마음수양

자바 슬롯머신 ( 글씨 대신 이미지로 숫자 변환) 본문

Language/java소스

자바 슬롯머신 ( 글씨 대신 이미지로 숫자 변환)

아라한사 2014. 4. 14. 22:31

자바 슬롯머신2입니다..글씨 대신 이미지로 해봤습니다..


꽤 오래걸렸군요. 그리드 레이아웃.. 이게 정해진 행대로 반띙을 해주는 것같습니다. ㅎㅎ




package 챕16이벤트;

import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;

class MyFrame extends JFrame implements ActionListener {
	static BufferedImage img[] = new BufferedImage[3];
	private JButton button;
	private static int[] numbers = new int[3];
	JLabel score;

	public MyFrame() {
		//기초 설정
		setSize(600, 600);
		setTitle("이미지 불러오기 테스트");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new GridLayout(2, 0));
		
		// 패널1 설정
		JPanel panel = new MyPanel();
		panel.setSize(600, 130);
		panel.setBackground(Color.green); // (궁금)이미지 패널은 배경색깔이.. 안바뀌나..?음...
		//패널2 설정
		JPanel panel2 = new JPanel();
		panel2.setBackground(Color.blue);
		panel2.setSize(600, 470); // (궁금)그리드는 무조건 그리드 반땅씩 하는듯 하다.
		panel2.setLayout(null);

		// 버튼 설정
		button = new JButton("스핀");
		button.setSize(150, 50);
		button.setLocation(150,  20);
		button.addActionListener(this);
		panel2.add(button);

		// 스코어 설정
		score = new JLabel("Game Start");
		score.setFont(new Font("Serif", Font.BOLD | Font.ITALIC, 30));
		score.setSize(400, 100);
		score.setLocation(100, 50 );
		panel2.add(score);

		// 패널 추가 후 실행
		add(panel);
		add(panel2);
		setVisible(true);
	}

	public void actionPerformed(ActionEvent arg0) {
		for (int i = 0; i < 3; i++) {
			numbers[i] = (int) (Math.random() * 10);
			
			//이미지 새로 불러오기 시도 해본다.
			try {
				img[i] = ImageIO.read(new File(numbers[i] + ".jpg"));
			} catch (IOException e) {
				System.out.println("no image");
				System.exit(1);
			}
			// 새로 불러와서 리페인트
			repaint();
		}
		System.out.println(numbers[0]+" "+numbers[1]+" "+numbers[2]);
		String a = numbers[0]+" "+numbers[1]+" "+numbers[2]+" ";
		
		if (numbers[0] == numbers[1] && numbers[0] == numbers[2])
			score.setText(a+" : 만점!");
		else if (numbers[0] == numbers[1] || numbers[0] == numbers[2]
				|| numbers[1] == numbers[2])
			score.setText(a+" : 두개 같다!");
		else
			score.setText(a+ ": 빵점");
	}
	class MyPanel extends JPanel {
		MyPanel() {
			for (int i = 0; i < 3; i++) {
				try {
					img[i] = ImageIO.read(new File(i + ".jpg"));
				} catch (IOException e) {
					System.out.println("no image here");
					System.exit(1);
				}
			}
		}
		public void paint(Graphics g) {
			g.drawImage(img[0], 100, 20, null);
			g.drawImage(img[1], 210, 20, null);
			g.drawImage(img[2], 320, 20, null);
		}
	}
}
public class TestCount {
	public static void main(String[] args) {
		new MyFrame();
	}
}