본문 바로가기
IT/Java

Java GUI (겜블링 게임)

by hjshims 2021. 6. 24.

 

 

package p0624pizza;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class KeyEventEx extends JFrame {
	JPanel contentPane = new JPanel();
	ImageIcon[] image = { new ImageIcon("image/dog.png"), new ImageIcon("image/cat.png"),
			new ImageIcon("image/goldfish.png"), new ImageIcon("image/lion.gif"), new ImageIcon("image/orange.gif"),
			new ImageIcon("image/grape.gif") };
	JLabel[] label = new JLabel[6];
	JLabel result = new JLabel("시작합니다.");

	int x1, x2, x3;

	public KeyEventEx() {
		setTitle("겜블링 게임");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		setContentPane(new GamePanel());

		contentPane.setFocusable(true);
		contentPane.requestFocus(); // JPanel이 키 입력 받을 수 있도록

		setSize(300, 200);
		setVisible(true);

		contentPane.addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent e) {
				if (e.getKeyCode() == '\n') {
					x1 = (int) (Math.random() * 5);
					label[0].setText(Integer.toString(x1));
					label[3].setIcon(image[x1]);
					x2 = (int) (Math.random() * 5);
					label[1].setText(Integer.toString(x2));
					label[4].setIcon(image[x2]);
					x3 = (int) (Math.random() * 5);
					label[2].setText(Integer.toString(x3));
					label[5].setIcon(image[x3]);
					if (x1 == x2 && x2 == x3) {
						result.setText("축하합니다!!");
					} 
					else {
						result.setText("시작합니다.");
					}
				}

			}
		});

		add(contentPane);
	}

	class GamePanel extends JPanel {
		public GamePanel() {
			setLayout(null);

			for (int i = 0; i < label.length; i++) {
				if (i < 3) {
					label[i] = new JLabel("0");
					label[i].setSize(60, 40);
					label[i].setLocation(30 + 80 * i, 20);
					label[i].setHorizontalAlignment(JLabel.CENTER);
					label[i].setOpaque(true);
					label[i].setBackground(Color.magenta);
					label[i].setForeground(Color.yellow);
					label[i].setFont(new Font("Tahoma", Font.ITALIC, 30));
					add(label[i]);
				} else {
					label[i] = new JLabel();
					label[i].setIcon(image[0]);
					label[i].setSize(60, 40);
					label[i].setLocation(30 + 80 * (i - 3), 70);
					label[i].setHorizontalAlignment(JLabel.CENTER);
					label[i].setOpaque(true);
					label[i].setBackground(Color.magenta);
					label[i].setForeground(Color.yellow);
					label[i].setFont(new Font("Tahoma", Font.ITALIC, 30));
					add(label[i]);
				}
			}
			result.setSize(200, 20);
			result.setLocation(100, 130);
			add(result);
		}

	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new KeyEventEx();
	}

}

 

<출력결과>