자바 이클립스 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:


댓글 달기