⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windowclosing.java~1~

📁 java 猜大小 图形界面 简单的java程序 适合初学java GUI着
💻 JAVA~1~
字号:
import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Clearbomb extends WindowAdapter implements ActionListener{Initdata data = new Initdata();Frame f_main = new Frame("ClearBomb");Panel p_up1 = new Panel();Panel p_down1 = new Panel(new GridLayout(9,9,1,1));Panel p_up2 = new Panel();Panel p_down2 = new Panel();Label l_left = new Label("0");Label l_right = new Label("10");JButton smile = new JButton();MenuBar menub = new MenuBar();Font ft = new Font("Seril",Font.BOLD,18);JButton bunit[][] = new JButton[9][9];Label lunit[][] = new Label[9][9];Panel punit[][] = new Panel[9][9];Dialog d1 = new Dialog(f_main,"恭喜",true);Dialog d2 = new Dialog(f_main,"帮助",true);Dialog d3 = new Dialog(f_main,"关于作者",true);Button b1 = new Button("确定");Button b2 = new Button("确定");Button b3 = new Button("确定");Label l1 = new Label("恭喜通关,再来一局吗?");Label l2 = new Label("此游戏仿制Windows中的扫雷程序而写,具体请参照Windows扫雷!少许漏洞,留待观者实现");Label l3 = new Label("黑人皮皮,本名,胡波。合肥工业大学计算机及应用专业本科毕业(自考)现正在学习java,已略有心得!志向:程序员。");CardLayout c = new CardLayout();//图片Icon bomb = new ImageIcon("bomb.gif");Icon touch = new ImageIcon("touch.gif");Icon falsebomb = new ImageIcon("falsebomb.gif");Icon smileface = new ImageIcon("smileface.gif");Icon die = new ImageIcon("die.gif");Icon puzzle = new ImageIcon("puzzle.gif");Icon flag = new ImageIcon("flag.gif");Icon flag1 = new ImageIcon("flag1.gif");Timers timer = new Timers();boolean stop = true;private int remainbomb = 10;private boolean appear = true;//控制对话框是否显示boolean threadstart = true;public void display(){//主框架f_main.setSize(241,350);f_main.setLocation(300,200);f_main.addWindowListener(this);f_main.setLayout(null);f_main.setBackground(Color.gray);f_main.setMenuBar(menub);//菜单Menu m_game = new Menu("游戏");Menu m_help = new Menu("帮助");Menu m_about = new Menu("关于作者");menub.add(m_game);menub.add(m_help);menub.add(m_about);m_game.addActionListener(this);m_help.addActionListener(this);m_about.addActionListener(this);m_game.add(new MenuItem("开局",new MenuShortcut(KeyEvent.VK_N)));m_game.addSeparator();m_game.add(new MenuItem("初级"));m_game.add(new MenuItem("中级"));m_game.add(new MenuItem("高级"));m_game.addSeparator();m_game.add(new MenuItem("退出",new MenuShortcut(KeyEvent.VK_E)));m_help.add(new MenuItem("帮助主题",new MenuShortcut(KeyEvent.VK_H)));m_about.add(new MenuItem("黑人皮皮",new MenuShortcut(KeyEvent.VK_W)));//面板p_up1.setBackground(Color.orange);p_up1.setSize(225,50);p_up1.setLocation(1,1);p_down1.setBackground(Color.gray);p_down1.setSize(225,225);p_down1.setLocation(1,1);p_up1.setLayout(null);//p_down1.setLayout(null);p_up2.setBackground(Color.white);p_up2.setLocation(7,44);p_up2.setSize(227,52);p_down2.setBackground(Color.white);p_down2.setLocation(7,104);p_down2.setSize(227,227);p_up2.setLayout(null);p_down2.setLayout(null);//标签与按钮l_left.setFont(ft);l_right.setFont(ft);l_left.setLocation(8,8);l_left.setSize(80,30);l_left.setBackground(Color.red);l_right.setLocation(137,8);l_right.setSize(80,30);l_right.setBackground(Color.red);smile.setIcon(smileface);smile.setLocation(98,8);smile.setSize(30,30);smile.setBackground(Color.white);smile.addActionListener(this);p_up1.add(l_left);p_up1.add(smile);p_up1.add(l_right);//雷区for(int i =0;i < 9;i++)for(int j = 0;j < 9;j++){bunit[i][j] = new JButton();punit[i][j] = new Panel(c);lunit[i][j] = new Label();bunit[i][j].setBackground(Color.lightGray);bunit[i][j].addMouseListener(new UnitEvent(i,j));bunit[i][j].addActionListener(this);lunit[i][j].setBackground(Color.white);punit[i][j].add(lunit[i][j],"down");punit[i][j].add(bunit[i][j],"up");//c.show(punit[i][j],"up");p_down1.add(punit[i][j]);}p_up2.add(p_up1);p_down2.add(p_down1);f_main.add(p_up2);f_main.add(p_down2);f_main.setResizable(false);f_main.setVisible(true);//对话框d1.add(l1,"Center");d1.setSize(300,150);d1.setLocation(200,200);d1.setLayout(new FlowLayout(FlowLayout.CENTER));d1.addWindowListener(this);b1.setSize(50,30);b1.setLocation(75,50);//d.addWindowListener(new Dlg());b1.addActionListener(this);d1.add(b1);d1.setVisible(false);d2.add(l2,"Center");d2.setSize(550,150);d2.setLocation(200,200);d2.setLayout(new FlowLayout(FlowLayout.CENTER));d2.addWindowListener(this);b2.setSize(50,30);//b2.setLocation();b2.addActionListener(this);d2.add(b2);d2.setVisible(false);d3.add(l3,"Center");d3.setSize(670,150);d3.setLocation(200,200);d3.setLayout(new FlowLayout(FlowLayout.CENTER));d3.addWindowListener(this);b3.setSize(50,30);//b3.setLocation();b3.addActionListener(this);d3.add(b3);d3.setVisible(false);init();}public void init(){data.init();appear = true;remainbomb = 10;for(int i = 0;i < 9;i++)for(int j = 0;j < 9;j++){bunit[i][j].setIcon(null);lunit[i][j].setText(data.initlunit(i,j) + "");if(!data.rand[i][j])lunit[i][j].setText("*");if(lunit[i][j].getText().equals("0") && data.rand[i][j])lunit[i][j].setText("");c.last(punit[i][j]);}}public void actionPerformed(ActionEvent e){if(e.getSource() == b1){appear = false;d1.setVisible(false);}if(e.getSource() == b2)d2.setVisible(false);if(e.getSource() == b3)d3.setVisible(false);if(e.getActionCommand() == "帮助主题")d2.setVisible(true);if(e.getActionCommand() == "黑人皮皮")d3.setVisible(true);if(e.getActionCommand() == "开局")gamestart();if(e.getActionCommand() == "退出")System.exit(1);for(int i = 0;i < 9;i++)for(int j = 0;j < 9;j++){stop = false;if(e.getSource() == bunit[i][j]){if(lunit[i][j].getText().equals("*")) {bunit[i][j].setIcon(touch);data.rand[i][j] = true;over();return;}else{if(lunit[i][j].getText().equals("")){//c.first(punit[i][j]);blankarea(i,j);}else c.first(punit[i][j]);}if(threadstart == true){new Timers().start();threadstart = false;}}}if(e.getSource() == smile ){gamestart();//return;}for(int i = 0;i < 9; i ++)for(int j = 0;j < 9;j ++){if(lunit[i][j].getText().equals("*") &&bunit[i][j].getIcon() == flag &&remainbomb == 0 && appear == true){stop = true;d1.setVisible(true);}}}public void gamestart(){smile.setIcon(smileface);init();threadstart = true;stop = true;for( int i = 0;i < 9;i++)for( int j = 0;j < 9;j++){bunit[i][j].setIcon(null);bunit[i][j].setEnabled(true);}l_right.setText("10");l_left.setText("0");}//很不幸,踩到了雷!public void over(){stop = true;smile.setIcon(touch);for(int i = 0;i < 9;i++)for(int j = 0;j < 9;j++){c.first(punit[i][j]);if(lunit[i][j].getText().equals("*") && bunit[i][j].getIcon() != touch){bunit[i][j].setIcon(bomb);c.last(punit[i][j]);}if(bunit[i][j].getIcon() == touch){bunit[i][j].setIcon(die);c.last(punit[i][j]);}bunit[i][j].setEnabled(false);}}//显示空白区域public void blankarea(int i,int j){data.appear[i][j] = false;if(lunit[i][j].getText().equals("*")) return;else {if(lunit[i][j].getText().equals("")) c.first(punit[i][j]);else {c.first(punit[i][j]);return;}}if(i > 0 && j > 0 && data.appear[i - 1][j - 1])blankarea(i - 1,j - 1);if(i > 0 && data.appear[i - 1][j] == true)blankarea(i - 1,j);if(i > 0 && j < 8 && data.appear[i - 1][j + 1])blankarea(i - 1,j + 1);if(j > 0 && data.appear[i][j - 1])blankarea(i,j - 1);if(j < 8 && data.appear[i][j + 1])blankarea(i,j + 1);if(i< 8 && j > 0 && data.appear[i + 1][j - 1])blankarea(i + 1,j - 1);if(i < 8 && data.appear[i + 1][j])blankarea(i + 1,j);if(i < 8 && j < 8 && data.appear[i + 1][j + 1])blankarea(i + 1,j + 1);}//程序入口main方法public static void main(String[] args){new Clearbomb().display();}public void windowClosing(WindowEvent e){if(e.getSource() == d1)d1.setVisible(false);else if (e.getSource() == d2)d2.setVisible(false);else if(e.getSource() == d3)d3.setVisible(false);elseSystem.exit(1);}//内部类,处理鼠标单击事件class UnitEvent extends MouseAdapter{private int a,b;public UnitEvent(int a,int b){this.a = a;this.b = b;}public void mouseClicked(MouseEvent e){if (e.getModifiers() == InputEvent.BUTTON1_MASK){;}if (e.getModifiers() == InputEvent.BUTTON2_MASK){}if (e.getModifiers() == InputEvent.BUTTON3_MASK){if(bunit[a][b].getIcon() == null){bunit[a][b].setIcon(flag);remainbomb--;l_right.setText("" + remainbomb);if(lunit[a][b].getText().equals("*") && //显示对话框bunit[a][b].getIcon() == flag &&remainbomb == 0){stop = true;d1.setVisible(true);}return;}if(bunit[a][b].getIcon() == flag){//标记与凝问的切换bunit[a][b].setIcon(puzzle);remainbomb++;l_right.setText("" + remainbomb);return;}if(bunit[a][b].getIcon() == puzzle){bunit[a][b].setIcon(null);return;}}}}class Timers extends Thread{//内部类,处理时间的显示public void run(){int i = 0;while(!stop){try{sleep(1000);}catch(InterruptedException e){System.out.println(e.getMessage());}i++;l_left.setText(""+i);}return;}}}class Initdata{//初始数据public boolean rand[][] = new boolean[9][9];public boolean appear[][] = new boolean[9][9];public void init(){for(int i = 0;i <= 8;i++)for(int j = 0;j <= 8;j++){rand[i][j] = true;appear[i][j] = true;}Random r = new Random();int bombcount = 0;for(;;){int i;i = r.nextInt(81);if(rand[i/9][i%9]){rand[i/9][i%9] = false;bombcount++;}if(bombcount == 10) break;}}public int initlunit(int i,int j){int sum=0;if(i>0&&j>0&&!rand[i-1][j-1])sum++;if(j>0&&!rand[i][j-1])sum++;if(i<8&&j>0&&!rand[i+1][j-1])sum++;if(i<8&&!rand[i+1][j])sum++;if(i<8&&j<8&&!rand[i+1][j+1])sum++;if(j<8&&!rand[i][j+1])sum++;if(i>0&&j<8&&!rand[i-1][j+1])sum++;if(i>0&&!rand[i-1][j])sum++;return sum;}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -