1 packagecom.sxt.dice;2
3 importjava.awt.Color;4
5 public class DiceFrame extends JFrame implementsActionListener, Observer {6
7 /**
8 * 《掷骰子》控制台小游戏,在该游戏中,玩家初始拥有1000的金钱,每次输入押大还是押小,9 * 以及下注金额,随机3个骰子的点数,如果3个骰子的总点数小于等于9,则开小,否则开大,10 * 然后判断玩家是否押对,如果未押对则扣除下注金额,如果押对则奖励和玩家下注金额相同的金钱。11 *12 * 运用观察者模式 3个子线程分别控制3个骰子,都已经结束时,通知观察者窗体,窗体观察到所有子线程都结束时,计算游戏结果13 *14 */
15
16 private static final long serialVersionUID = 1L;17 privateJTextField txtPut;18 privateJButton btnStart;19 privateJLabel labResult;20 private JComboBoxcomboBox;21 privateJLabel labBigOrSmall;22 privateJLabel labPut;23 privateJLabel labSumMoney;24 privateJLabel labDice3;25 privateJLabel labDice2;26 privateJLabel labDice1;27 privateJLabel labSum;28 privateJLabel labMes;29
30 private static List imgs = new ArrayList();31
32 public static voidmain(String[] args) {33 newDiceFrame();34 }35
36 publicDiceFrame() {37 this.setLocationRelativeTo(null);38 this.setBounds(200, 50, 380, 297);39 this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);40 getContentPane().setLayout(null);41 this.setResizable(false);42
43 labDice1 = new JLabel("");44 labDice1.setIcon(new ImageIcon("img/dices.jpg"));45 labDice1.setBounds(30, 50, 96, 96);46 getContentPane().add(labDice1);47
48 labSum = new JLabel("\u5269\u4F59\u91D1\u989D\uFF1A");49 labSum.setBounds(10, 10,