有做模仿易企秀网站吗,app软件大全免费,电子商务网站建设的相关流程,昆明好seo怎么做无论游戏多么简单或复杂 #xff0c;Java都能胜任#xff01; 在这篇文章中#xff0c;让我们看一下Java编程的初学者如何制作一个简单而功能齐全的老虎机。 老虎机已经存在很长时间了#xff0c;但是它的娱乐价值似乎并没有减弱。 InterCasino是第一个在1996年向世界提供… 无论游戏多么简单或复杂 Java都能胜任 在这篇文章中让我们看一下Java编程的初学者如何制作一个简单而功能齐全的老虎机。 老虎机已经存在很长时间了但是它的娱乐价值似乎并没有减弱。 InterCasino是第一个在1996年向世界提供在线娱乐场游戏的网站现在仍然存在并且其老虎机游戏似乎经常更新。 此外根据美国博彩协会 American Gaming Association的统计 老虎机产生了约62的游戏货币即90的博彩收入使这些机器成为赌场的摇钱树。 考虑到这些事实您是否不想创建自己的老虎机数百万赌场游戏迷将来可能会喜欢 如果您对创建基于Java的老虎机游戏感兴趣那么下面的代码可能对您有用。 package slotMachineGUI;import java.awt.*;
import javax.swing.*;
import javax.swing.LayoutStyle.ComponentPlacement;
import java.text.DecimalFormat;
import java.util.Random;
import java.util.ArrayList;
import javax.swing.border.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class SlotMachineGUI {private JButton btnCash, btnSpin;private JCheckBox cbAlwaysWin, cbSuperJackpot, cbTrollface;private JFrame frmFrame;private JLabel lblCredits, lblLost, lblMatchThree, lblMatchTwo, lblMoney, lblReel1, lblReel2, lblReel3, lblStatus, lblWon;private JPanel pnlReels, pnlReel1, pnlReel2, pnlReel3;private JProgressBar prgbarCheatUnlocker;private JSeparator sepCheats, sepStats, sepStats2, sepStatus;private JToggleButton tgglSound;private int credits 100, boughtCredits 100, bet 15, matchThree, matchTwo, win, lost;private double payout 25.0, creditBuyout 10.0, funds;private int reel1 7, reel2 7, reel3 7; // starting values of the reels.private ArrayListImageIcon images new ArrayListImageIcon();private DecimalFormat df new DecimalFormat(0.00);public SlotMachineGUI(int credits, int boughtCredits, int bet, double payout, double creditBuyout, int reel1, int reel2, int reel3) {this.creditscredits;this.boughtCreditsboughtCredits;this.betbet;this.payoutpayout;this.creditBuyoutcreditBuyout;this.reel1reel1;this.reel2reel2;this.reel3reel3;createForm();loadImages();addFields();addButtons();layoutFrame();layoutReels();layoutOther();}public SlotMachineGUI() {createForm();loadImages();addFields();addButtons();layoutFrame();layoutReels();layoutOther();}/** Creates the JFrame and Panels. */private void createForm() {frmFrame new JFrame();frmFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);frmFrame.setTitle(Warner Slots);frmFrame.setResizable(false);frmFrame.setVisible(true);pnlReels new JPanel();pnlReels.setBorder(BorderFactory.createEtchedBorder());pnlReel1 new JPanel();pnlReel1.setBackground(new Color(255, 215, 0));pnlReel1.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));pnlReel2 new JPanel();pnlReel2.setBackground(new Color(255, 216, 0));pnlReel2.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));pnlReel3 new JPanel();pnlReel3.setBackground(new java.awt.Color(255, 215, 0));pnlReel3.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));}/** Adds labels to the form. */private void addFields() {lblReel1 new JLabel();lblReel2 new JLabel();lblReel3 new JLabel();sepStats new JSeparator();lblMatchTwo new JLabel();lblMatchTwo.setText(Matched Two: );lblMatchThree new JLabel();lblMatchThree.setText(Matched Three: );lblWon new JLabel();lblWon.setText(Won: );sepStats2 new JSeparator();sepStats2.setOrientation(SwingConstants.VERTICAL);lblCredits new JLabel();lblCredits.setText(Credits: credits);lblMoney new JLabel();lblMoney.setText(Money: £df.format(funds));lblLost new JLabel();lblLost.setText(Lost: );sepStatus new JSeparator();lblStatus new JLabel();lblStatus.setBackground(new Color(255, 255, 255));lblStatus.setFont(new Font(Arial, 1, 14));lblStatus.setHorizontalAlignment(SwingConstants.CENTER);lblStatus.setText(Welcome to WARNER SLOTS!!! ©2012);sepCheats new JSeparator();prgbarCheatUnlocker new JProgressBar();prgbarCheatUnlocker.setToolTipText(Fill the bar to unlock the cheat menu.);lblReel1.setIcon(images.get(reel1));lblReel2.setIcon(images.get(reel2));lblReel3.setIcon(images.get(reel3));}/** Adds buttons to the form. */private void addButtons() {btnSpin new JButton();btnSpin.setBackground(new Color(50, 255, 50));btnSpin.setText(Spin);btnSpin.setToolTipText(Click to spin the reels!);btnSpin.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));btnSpin.setInheritsPopupMenu(true);btnSpin.setMaximumSize(new Dimension(200, 50));btnSpin.setMinimumSize(new Dimension(200, 50));btnSpin.addActionListener(new SpinHandler());btnCash new JButton();btnCash.setBackground(new Color(255, 0, 0));btnCash.setText(Buy Credits);btnCash.setToolTipText(£df.format(bet) converts to boughtCredits credits.);btnCash.setHorizontalTextPosition(SwingConstants.CENTER);btnCash.addActionListener(new BuyCreditsHandler());tgglSound new JToggleButton();tgglSound.setSelected(false);tgglSound.setText(Sound ON);tgglSound.addActionListener(new SoundHandler());cbAlwaysWin new JCheckBox();cbAlwaysWin.setText(Always Win Mode);cbAlwaysWin.setEnabled(false);cbAlwaysWin.addActionListener(new AlwaysWinHandler());cbTrollface new JCheckBox();cbTrollface.setText(Trollface);cbTrollface.setEnabled(false);cbTrollface.addActionListener(new TrollfaceHandler());cbSuperJackpot new JCheckBox();cbSuperJackpot.setText(Super Jackpot);cbSuperJackpot.setEnabled(false);cbSuperJackpot.addActionListener(new SuperPrizeHandler());}/** Lays out the frame. */private void layoutFrame() {GroupLayout frameLayout new GroupLayout(frmFrame.getContentPane());frmFrame.getContentPane().setLayout(frameLayout);frameLayout.setHorizontalGroup(frameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 400, Short.MAX_VALUE));frameLayout.setVerticalGroup(frameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 300, Short.MAX_VALUE));}/** Lays out the panels and reels. */private void layoutReels() {GroupLayout pnlReelsLayout new GroupLayout(pnlReels);pnlReels.setLayout(pnlReelsLayout);pnlReelsLayout.setHorizontalGroup(pnlReelsLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(pnlReelsLayout.createSequentialGroup().addContainerGap().addComponent(pnlReel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGap(18, 18, 18).addComponent(pnlReel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGap(18, 18, 18).addComponent(pnlReel3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));pnlReelsLayout.setVerticalGroup(pnlReelsLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(pnlReelsLayout.createSequentialGroup().addContainerGap().addGroup(pnlReelsLayout.createParallelGroup(GroupLayout.Alignment.TRAILING, false).addComponent(pnlReel2, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(pnlReel1, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(pnlReel3, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));GroupLayout pnlReel1Layout new GroupLayout(pnlReel1);pnlReel1.setLayout(pnlReel1Layout);pnlReel1Layout.setHorizontalGroup(pnlReel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(pnlReel1Layout.createSequentialGroup().addContainerGap().addComponent(lblReel1).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));pnlReel1Layout.setVerticalGroup(pnlReel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(pnlReel1Layout.createSequentialGroup().addContainerGap().addComponent(lblReel1).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));GroupLayout pnlReel2Layout new GroupLayout(pnlReel2);pnlReel2.setLayout(pnlReel2Layout);pnlReel2Layout.setHorizontalGroup(pnlReel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(pnlReel2Layout.createSequentialGroup().addContainerGap().addComponent(lblReel2).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));pnlReel2Layout.setVerticalGroup(pnlReel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(pnlReel2Layout.createSequentialGroup().addContainerGap().addComponent(lblReel2).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));GroupLayout pnlReel3Layout new GroupLayout(pnlReel3);pnlReel3.setLayout(pnlReel3Layout);pnlReel3Layout.setHorizontalGroup(pnlReel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(pnlReel3Layout.createSequentialGroup().addContainerGap().addComponent(lblReel3).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));pnlReel3Layout.setVerticalGroup(pnlReel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(pnlReel3Layout.createSequentialGroup().addContainerGap().addComponent(lblReel3).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));}/** lays out the remaining labels, check boxes, progress bars, etc. */private void layoutOther() {GroupLayout layout new GroupLayout(frmFrame.getContentPane());frmFrame.getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false).addComponent(sepCheats).addComponent(prgbarCheatUnlocker, GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE)).addGap(0, 0, Short.MAX_VALUE)).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false).addGroup(layout.createSequentialGroup().addComponent(cbAlwaysWin).addGap(18, 18, 18).addComponent(cbTrollface).addGap(18, 18, 18).addComponent(cbSuperJackpot).addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(tgglSound)).addComponent(btnSpin, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(pnlReels, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(sepStats, GroupLayout.Alignment.TRAILING).addComponent(lblStatus, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING, false).addComponent(lblMatchTwo, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(lblWon, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(lblMatchThree, GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE)).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(sepStats2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.UNRELATED).addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false).addComponent(lblLost, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(lblCredits, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(lblMoney, GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)).addGap(0, 0, Short.MAX_VALUE))).addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING).addComponent(btnCash).addComponent(sepStatus, GroupLayout.PREFERRED_SIZE, 426, GroupLayout.PREFERRED_SIZE))).addContainerGap()))));layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(pnlReels, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED).addComponent(btnSpin, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(sepStats, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.UNRELATED).addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(lblWon, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED).addComponent(lblMatchTwo, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED).addComponent(lblMatchThree, GroupLayout.DEFAULT_SIZE, 25, Short.MAX_VALUE)).addComponent(sepStats2).addGroup(layout.createSequentialGroup().addComponent(lblLost, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED).addComponent(lblCredits, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED).addComponent(lblMoney, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)).addComponent(btnCash, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(sepStatus, GroupLayout.PREFERRED_SIZE, 2, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(lblStatus, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(sepCheats, GroupLayout.PREFERRED_SIZE, 5, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED).addComponent(prgbarCheatUnlocker, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.UNRELATED).addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(cbAlwaysWin).addComponent(cbTrollface).addComponent(cbSuperJackpot).addComponent(tgglSound)).addContainerGap()));frmFrame.pack();}/** Performs action when Buy Credits button is clicked. */class BuyCreditsHandler implements ActionListener {public void actionPerformed(ActionEvent event) {buyCredits();}}/** if the player has enough funds credits are added. */public void buyCredits() {if (funds creditBuyout) {funds - creditBuyout;lblMoney.setText(Money: £df.format(funds));credits boughtCredits;lblCredits.setText(Credits: credits);lblStatus.setText(boughtCredits credits purchased! -£df.format(creditBuyout));} else {lblStatus.setText(Insufficient £ to purchase credits!);}buyCreditsCheck();}/** if user has enough funds to buy credits changes buttons colour to alert user. */public void buyCreditsCheck() {if (funds bet) {btnCash.setBackground(new java.awt.Color(255, 0, 0));} else {btnCash.setBackground(new java.awt.Color(50, 255, 50));}}/** Performs action when Spin button is clicked. */class SpinHandler implements ActionListener {public void actionPerformed(ActionEvent event) {if (funds creditBuyout credits bet) {lblStatus.setText(htmla hrefhttp://www.gambleaware.co.uk/www.gambleaware.co.uk/a/html);} else if ((credits - bet) 0) {pnlReel1.setBackground(new java.awt.Color(255, 215, 0));pnlReel2.setBackground(new java.awt.Color(255, 215, 0));pnlReel3.setBackground(new java.awt.Color(255, 215, 0));genReelNumbers();matchCheck();} else {lblStatus.setText(Bet is bet credits, purchase more with £!);}buyCreditsCheck();}}/** Generates the 3 reel numbers. */public void genReelNumbers() {Random rand new Random();if (cbAlwaysWin.isSelected() true) { // If the Always win cheat mode is enabled.int winType rand.nextInt(4); // generates number between 0-3 to determine the type of winreel1 rand.nextInt(images.size());if (winType 0) { // winType 0 - Reels 1, 2 and 3 will all match.reel2 reel1;reel3 reel1;} else if (winType 1) { // winType 1 - Reels 1 and 2 will match.reel2 reel1;} else if (winType 2) { // winType 2 - Reels 1 and 3 will match.reel3 reel1;} else { // winType 3 - Reels 2 and 3 will match.if (reel1 0 ) {reel2 reel1 1;reel3 reel1 1;} if (reel1 images.size()-1) {reel2 reel1 - 1;reel3 reel1 - 1;}}} else { // If the Always win cheat mode is disabled play a normal game.reel1 rand.nextInt(images.size());reel2 rand.nextInt(images.size());reel3 rand.nextInt(images.size());}setReelIcon(reel1, reel2, reel3); // Set the reel image}/** Sets the reels icon based on loaded image in images ArrayList. */public void setReelIcon(int ico1, int ico2, int ico3) {lblReel1.setIcon(images.get(ico1)); // icon the ArrayList index random reel numberlblReel2.setIcon(images.get(ico2));lblReel3.setIcon(images.get(ico3));}/** Checks for number matches and adjusts score depending on result. */public void matchCheck() {if (reel1 reel2 reel2 reel3) {lblStatus.setText(You matched THREE symbols (images.get(reel1).getDescription())! £df.format(getPrize(payout))!);lblMatchThree.setText(Matched Three: matchThree());pnlReel1.setBackground(new java.awt.Color(255, 0, 0)); // Highlights matched icons.pnlReel2.setBackground(new java.awt.Color(255, 0, 0));pnlReel3.setBackground(new java.awt.Color(255, 0, 0));} else if (reel1 reel2 || reel1 reel3) {lblStatus.setText(You matched TWO symbols (images.get(reel1).getDescription())! £df.format(getPrize(payout))!);lblMatchTwo.setText(Matched Two: matchTwo());if (reel1 reel2) {pnlReel1.setBackground(new java.awt.Color(255, 0, 0)); // Highlights matched icons.pnlReel2.setBackground(new java.awt.Color(255, 0, 0));} else if (reel1 reel3){pnlReel1.setBackground(new java.awt.Color(255, 0, 0)); // Highlights matched icons.pnlReel3.setBackground(new java.awt.Color(255, 0, 0));}} else if (reel2 reel3) {lblStatus.setText(You matched TWO symbols (images.get(reel2).getDescription())! £df.format(getPrize(payout))!);lblMatchTwo.setText(Matched Two: matchTwo());pnlReel2.setBackground(new java.awt.Color(255, 0, 0)); // Highlights matched icons.pnlReel3.setBackground(new java.awt.Color(255, 0, 0));} else {lblStatus.setText(Sorry, you didnt match any symbols. -bet credits!);lblLost.setText(Lost: lose());}lblCredits.setText(Credits: (credits - bet)); // deduct bet amount from available credits.lblMoney.setText(Money: £df.format((funds getPrize(payout)))); // If there is a win add amount to cash pot.lblWon.setText(Wins: win()); // increment win amount.}/** sets progress bar equal to the current win count. if bar is full it unlocks cheat menu */public void prgBarCheck() {if (prgbarCheatUnlocker.getValue() 99) {prgbarCheatUnlocker.setValue(win);} else if (prgbarCheatUnlocker.getValue() 100) { // after 100 wins unlock the cheats.prgbarCheatUnlocker.setValue(100);lblStatus.setText(100 wins! Congratulations youve unlocked the cheat menu!);cbTrollface.setEnabled(true);cbSuperJackpot.setEnabled(true);cbAlwaysWin.setEnabled(true);}}/** calculates prize to be awarded for win based on number of matches and cheats. */public double getPrize(double prize) {if (reel1 reel2 reel2 reel3) {if (cbSuperJackpot.isSelected() true) {prize * 100; // if cheating and all are matched return the full pay out x100.} else {prize payout; // if all are matched return the full pay out.}} else if (reel1 reel2 || reel1 reel3 || reel2 reel3) {if (cbSuperJackpot.isSelected() true) {prize * 50; // if cheating and two are matched return the pay out x50.} else {prize payout / 5; // if two are matched return 1/5th of the pay out.}} else {prize 0; // If no win return no prize.}return prize;}/** Performs action when Super Jack pot check box is clicked. */class SuperPrizeHandler implements ActionListener{public void actionPerformed(ActionEvent e) {if (cbSuperJackpot.isSelected() true) {lblStatus.setText(Super Prize mode ENABLED! The £ won is now x100!);}if (cbSuperJackpot.isSelected() false) {lblStatus.setText(Super Prize mode DISABLED! :();}}}/** Performs action when Troll face check box is clicked. */class AlwaysWinHandler implements ActionListener{public void actionPerformed(ActionEvent e) {if (cbAlwaysWin.isSelected() true) {lblStatus.setText(Always Win mode ENABLED! 7-7-7s here we come!);}if (cbAlwaysWin.isSelected() false) {lblStatus.setText(Always Win mode DISABLED! :();}}}/** Performs action when Troll face check box is clicked. */class TrollfaceHandler implements ActionListener{public void actionPerformed(ActionEvent e) {if (cbTrollface.isSelected() true images.get(images.size()-1) ! createImageIcon(images/Trollface.png, Trollface)) {images.add(createImageIcon(images/Trollface.png, Trollface)); // adds a bonus image to the images ArrayList.lblStatus.setText(Trollface mode ENABLED! Trolololololol!);}if (cbTrollface.isSelected() false images.get(images.size()-1) ! createImageIcon(images/Trollface.png, Trollface)) {images.remove(images.size()-1); // removes the bonus image (or last one added to the ArrayList) from the images ArrayList.lblStatus.setText(Trollface mode DISABLED! :();}}}/** Performs action when sound toggle button is clicked.* NOT IMPLEMENTED*/class SoundHandler implements ActionListener{public void actionPerformed(ActionEvent e) {if (tgglSound.isSelected() false) {tgglSound.setText(Sound ON);lblStatus.setText(Sound effects have been ENABLED!);// allowed to play sounds} else {tgglSound.setText(Sound OFF);lblStatus.setText(Sound effects have been DISABLED!);// disable sounds}}}/** Loads ImageIcons into the images ArrayList.* The difficulty is determined by the number of images present in the ArrayList:* • Add images here to make game more difficult.* • Remove images here to make game easier.*/public void loadImages() {images.add(createImageIcon(images/Banana.png, Banana));images.add(createImageIcon(images/Bar.png, Bar));images.add(createImageIcon(images/Bell.png, Bell));images.add(createImageIcon(images/Cherry.png, Cherry));images.add(createImageIcon(images/Clover.png, Clover));images.add(createImageIcon(images/Diamond.png, Diamond));images.add(createImageIcon(images/Plum.png, Plum));images.add(createImageIcon(images/Seven.png, Seven));images.add(createImageIcon(images/Watermelon.png, Watermelon));}/** Create a new ImageIcon, unless the URL is not found. */public ImageIcon createImageIcon(String path, String description) {java.net.URL imgURL getClass().getResource(path);if (imgURL ! null) {return new ImageIcon(imgURL, description);} else {System.err.println(Couldnt find file: path);return null;}}/** Increments matchThree by 1 and returns value. */public int matchThree() {matchThree;return matchThree;}/** Increments matchTwo by 1 and returns value. */public int matchTwo() {matchTwo;return matchTwo;}/** Increments lost by 1 and returns value. */public int lose() {lost;return lost;}/** Increments win by 1, increases progress bar and returns value. */public int win() {win matchThree matchTwo;prgBarCheck(); // Increments the progress bar to unlock cheat menu.return win;}public static void main(String args[]) {try {for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {if (Nimbus.equals(info.getName())) {javax.swing.UIManager.setLookAndFeel(info.getClassName());break;}}} catch (ClassNotFoundException ex) {java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);} catch (InstantiationException ex) {java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);} catch (IllegalAccessException ex) {java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);} catch (javax.swing.UnsupportedLookAndFeelException ex) {java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);}java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new SlotMachineGUI();}});}} YouTube使用者M ajestic 敬请接受上述程式码。 这是他在游戏创作中使用的图像 。 翻译自: https://www.javacodegeeks.com/2014/08/programming-a-simple-slot-machine-game-using-java.html