자바 이클립스 GUI로 청기백기게임을 만드는데 문제점이 있습니다.
글쓴이: didgusals123 / 작성시간: 토, 2014/12/06 - 6:24오후
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.JOptionPane; import java.util.Random; class BWFlag extends JFrame{ ImageIcon [] bw = { new ImageIcon("images/0.jpg"), new ImageIcon("images/1.jpg"), new ImageIcon("images/2.jpg"), new ImageIcon("images/3.jpg") // 방향 버튼 이미지 구현 }; MainPanel mainpanel = new MainPanel(); JButton[] bwbt = new JButton[4]; JLabel label = new JLabel(); MyActionListener lis = new MyActionListener(); // 버튼을 클릭했을 때 이벤트 BWFlag(){ // 생성자 setTitle("청기백기게임"); setSize(600,800); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); add(mainpanel); for(int i=0; i<bwbt.length; i++){ // 버튼 4개 달아줌 bwbt[i] = new JButton(bw[i]); mainpanel.add(bwbt[i]); bwbt[i].addActionListener(lis); } mainpanel.add(label); } class MainPanel extends JPanel{ // 청기백기게임 메인 이미지 그려줌 ImageIcon main = new ImageIcon("images/mainicon.jpg"); Image img = main.getImage(); public void paintComponent(Graphics g){ super.paintComponent(g); g.drawImage(img, 40, 140, this); } } public class MyActionListener implements ActionListener{ // 버튼 클릭했을 경우 public void actionPerformed(ActionEvent e) { JButton ebt = (JButton)e.getSource(); int game = (int)(Math.random()*4); switch(game){ case 0 : // 청기 올려! label.setText("청기 올려!"); if(e.getSource() == bwbt[0]){ JOptionPane.showMessageDialog(null, "Pass!!!", "Message", JOptionPane.INFORMATION_MESSAGE, null); } else{ JOptionPane.showMessageDialog(null, "Fail!!!", "Message", JOptionPane.WARNING_MESSAGE, null); } break; case 1 : // 청기 내려! label.setText("청기 내려!"); if(e.getSource() == bwbt[1]){ JOptionPane.showMessageDialog(null, "Pass!!!", "Message", JOptionPane.INFORMATION_MESSAGE, null); } else{ JOptionPane.showMessageDialog(null, "Fail!!!", "Message", JOptionPane.WARNING_MESSAGE, null); } break; case 2 : // 청기 내려! label.setText("백기 올려!"); if(e.getSource() == bwbt[2]){ JOptionPane.showMessageDialog(null, "Pass!!!", "Message", JOptionPane.INFORMATION_MESSAGE, null); } else{ JOptionPane.showMessageDialog(null, "Fail!!!", "Message", JOptionPane.WARNING_MESSAGE, null); } break; case 3 : // 청기 내려! label.setText("백기 내려!"); if(e.getSource() == bwbt[3]){ JOptionPane.showMessageDialog(null, "Pass!!!", "Message", JOptionPane.INFORMATION_MESSAGE, null); } else{ JOptionPane.showMessageDialog(null, "Fail!!!", "Message", JOptionPane.WARNING_MESSAGE, null); } break; } } } } public class BWGame { public static void main(String[] args){ BWFlag b = new BWFlag(); } }
------------------------------------------------------------------------------------------------------------------
제가 작성해본 코든데 버튼을 누를 때 임의의 명령어가 출력되더라구요...
임의의 명령어를 JLabel로 출력하고 그거에 맞는 버튼을 클릭할 수 있게하는 방법이 없을까요?
있다면 간단한 예제도 들어주시면 감사하겠습니다.
Forums:
댓글 달기