import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;
import javax.swing.*;
public class MJBGame extends JFrame {
JRadioButton rbtnRock;
JRadioButton rbtnSci;
JRadioButton rbtnPapper;
JTextArea ta;
JButton btnStart;
String[] mjb;
String comTurn = comGame();
String myTurn = "";
public MJBGame() {
init();
setDisplay();
addListeners();
showFrame();
}
public void init() {
rbtnRock = new JRadioButton("묵");
rbtnSci = new JRadioButton("찌");
rbtnPapper = new JRadioButton("빠");
ButtonGroup group = new ButtonGroup();
group.add(rbtnRock);
group.add(rbtnSci);
group.add(rbtnPapper);
ta = new JTextArea(5, 20);
ta.setEditable(false);
btnStart = new JButton("시작");
}
public void setDisplay() {
JPanel j1 = new JPanel();
j1.add(rbtnRock, BorderLayout.CENTER);
JPanel j2 = new JPanel();
j2.add(rbtnSci, BorderLayout.CENTER);
JPanel j3 = new JPanel();
j3.add(rbtnPapper, BorderLayout.CENTER);
JPanel jSum = new JPanel(new GridLayout(0, 3));
jSum.add(j1);
jSum.add(j2);
jSum.add(j3);
JPanel pnlBtn = new JPanel();
pnlBtn.add(btnStart);
JPanel pnlNorth = new JPanel(new GridLayout(0, 1));
pnlNorth.add(jSum);
pnlNorth.add(pnlBtn);
JPanel pnlta = new JPanel();
pnlta.add(new JScrollPane(ta));
add(pnlNorth, BorderLayout.NORTH);
add(pnlta, BorderLayout.CENTER);
}
public void addListeners() {
btnStart.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ta.setText("");
gameStart(rbtnRock, 1, 2);
gameStart(rbtnSci, 2, 0);
gameStart(rbtnPapper, 0, 1);
}
});
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we) {
int choice = JOptionPane.showConfirmDialog(
MJBGame.this,
"종료합니다.",
"종료",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE
);
if(choice == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
});
}
public String comGame() {
mjb = new String[]{"묵", "찌", "빠"};
Random random = new Random();
String strCom = mjb[random.nextInt(3)];
return strCom;
}
public void gameStart(JRadioButton rbtn, int idx1, int idx2) {
comTurn = comGame();
myTurn = "";
if(rbtn.isSelected()) {
myTurn = rbtn.getText();
ta.setText("컴퓨터: " + comTurn + "\n나: " + myTurn + "\n");
if (comTurn.equals(myTurn)) {
ta.append("비겼어요 ~");
} else {
if(comTurn.equals(mjb[idx1])) {
ta.append("당신이 이겼어요 ~");
} else if(comTurn.equals(mjb[idx2])) {
ta.append("당신이 졌어요~");
}
}
}
}
public void showFrame() {
setTitle("MJBGame");
pack();
setLocation(100, 0);
setResizable(false);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MJBGame();
}
}
