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(); } }