|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
自定义JButton子类: //ExtendButton.java package ly.java; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ExtendButton extends JButton { private int Button_Pos; private boolean Button_Status; private boolean Button_Visited; public int SetPostion(int pos) { this.Button_Pos = (pos >= 0 && pos <= 81) ? pos : 0; return this.Button_Pos ; } public int GetPostion() { return this.Button_Pos; } public boolean SetStatus(boolean sta) { this.Button_Status = sta; return this.Button_Status; } public boolean GetStatus() { return this.Button_Status; } public boolean Visited() { return this.Button_Visited; } public boolean SetVisited(boolean vis) { this.Button_Visited = vis; return this.Button_Visited; } } 游戏类 //Game.java package ly.java.game; import java.awt.*; import java.awt.event.*; import javax.swing.*; import ly.java.ExtendButton; public class Game extends JFrame implements ActionListener{ private Container myContainer; private GridLayout myLayout; ExtendButton[] myButton = new ExtendButton[81]; private Game() { this.setTitle("Game"); this.setSize( 500,500 ); this.InitButton(); } private void InitButton() { myContainer = getContentPane(); myLayout = new GridLayout( 9, 9, 1, 1 ); myContainer.setLayout( myLayout ); for(int i=0; i < 81; i++) { myButton[i] = new ExtendButton(); myButton[i].SetPostion(i); myContainer.add(myButton[i]); myButton[i].addActionListener( this ); } System.gc(); this.SetBomb(13); show(); } private void SetBomb(int count) { int counter = 0; int tempint; while(counter != count) { tempint = ( int )(Math.random() * 81); if(!myButton[tempint].GetStatus()) { myButton[tempint].SetStatus(true); counter++; } } } private void ShowBomb() { for(int i = 0; i < 81; i++) { if(myButton[i].GetStatus()) { myButton[i].setBackground( new Color(0,0,0) ); } } } private void CheckButton(ExtendButton TempButton) { if(TempButton.GetStatus()) { JOptionPane.showMessageDialog( null, "You Failed!", "Game",JOptionPane.INFORMATION_MESSAGE ); this.ShowBomb(); return; } int[] CircleNum = new int[8]; int temp = 0; if(!TempButton.Visited()) { CircleNum[0] = TempButton.GetPostion() - 9; CircleNum[0] = (CircleNum[0] < 0) ? -1 : CircleNum[0]; CircleNum[1] = TempButton.GetPostion() - 8; CircleNum[1] = (CircleNum[1] < 0 || CircleNum[1] % 9 == 0) ? -1 : CircleNum[1]; CircleNum[2] = TempButton.GetPostion() + 1; CircleNum[2] = (CircleNum[2] % 9 == 0) ? -1 : CircleNum[2]; CircleNum[3] = TempButton.GetPostion() + 10; CircleNum[3] = (CircleNum[3] > 80 || CircleNum[3] % 9 == 0) ? -1 : CircleNum[3]; CircleNum[4] = TempButton.GetPostion() + 9; CircleNum[4] = (CircleNum[4] > 80) ? -1 : CircleNum[4]; CircleNum[5] = TempButton.GetPostion() + 8; CircleNum[5] = (CircleNum[5] > 80 || CircleNum[5] % 8 == 0) ? -1 : CircleNum[5]; CircleNum[6] = TempButton.GetPostion() - 1; CircleNum[6] = (CircleNum[6] % 8 == 0) ? -1 : CircleNum[6]; CircleNum[7] = TempButton.GetPostion() - 10; CircleNum[7] = (CircleNum[7] < 0 || CircleNum[7] % 8 == 0) ? -1 : CircleNum[7]; for(int i = 0; i < 8; i++) { if(CircleNum[i] != -1) { if(myButton[CircleNum[i]].GetStatus() && !myButton[CircleNum[i]].Visited()) temp++; } } if(temp > 0) { TempButton.SetVisited( true ); TempButton.setText( String.valueOf(temp) ); temp = 0; } else if(temp == 0) { TempButton.SetVisited( true ); TempButton.setBackground(new Color( 125,152,0 )); for(int i = 0; i < 8; i++) { if(CircleNum[i] != -1 && !myButton[CircleNum[i]].Visited()) { CheckButton(myButton[CircleNum[i]]); } } } } } public void actionPerformed(ActionEvent e) { CheckButton((ExtendButton)e.getSource()); } public static void main(String[] args) { Game newGame = new Game(); newGame.addWindowListener( new WindowAdapter(){ public void windowClosing( WindowEvent e ) { System.exit(0); } } ); } } 返回类别: 教程 上一教程: Java Reflection (JAVA反射) 下一教程: EJB之无状态会话Bean简朴应用-学习与实践 您可以阅读与"Java扫雷程序,初试Java"相关的教程: · 漫谈Java程序设计中的接口应用 · java程序得到域名对应的所有IP地址 · 提高Java程序内存效率 · 用java小程序applet实现无限级树结构 · Java XML教程(附:源程序) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |