当前位置: 首页 > news >正文

陕西网站制作qq群高安网站制作

陕西网站制作qq群,高安网站制作,随州网站制作价格,烟台seo管理本文实例为大家分享了java版数独游戏界面实现的具体代码#xff0c;供大家参考#xff0c;具体内容如下实现效果图#xff1a;这里写图片描述主函数用于启动程序#xff1a;package hlc.shudu.app;import hlc.shudu.src.ShuduHelper;import hlc.shudu.ui.ShuduMainFrame;pu…本文实例为大家分享了java版数独游戏界面实现的具体代码供大家参考具体内容如下实现效果图这里写图片描述主函数用于启动程序package hlc.shudu.app;import hlc.shudu.src.ShuduHelper;import hlc.shudu.ui.ShuduMainFrame;public class AppStart {public static void main(String[] args) {ShuduMainFrame mainFrame new ShuduMainFrame();mainFrame.setVisible(true);}}主窗体类(包含消息区时间区游戏区)package hlc.shudu.ui;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Time;import java.text.SimpleDateFormat;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.Timer;import javax.swing.border.TitledBorder;/** 数独主窗体*/public class ShuduMainFrame extends JFrame {public static int pass 1; // 关卡public static JLabel lbPass; // 显示关卡的lablepublic static long usedTime 0; // 玩家用时private ShuduCanvers panelCanvers; // 主游戏区public static Timer userTimeAction;/** 默认构造函数*/public ShuduMainFrame() {// 初始化方法init();// 添加组件addComponent();// 添加主游戏区addCanvers();}/** 添加主游戏区*/private void addCanvers() {panelCanvers new ShuduCanvers();panelCanvers.setBorder(new TitledBorder(游戏区));// 将主游戏区添加到窗体中this.add(panelCanvers, BorderLayout.CENTER);}/** 添加组件区*/private void addComponent() {JPanel panelComponent new JPanel();// 添加消息区addPanelMsg(panelComponent);// 添加时间区addPanelTime(panelComponent);// 将组件添加到窗体顶部this.add(panelComponent, BorderLayout.NORTH);}private void addPanelTime(JPanel panelComponent) {JPanel panelTime new JPanel();panelTime.setBorder(new TitledBorder(时间));panelTime.setLayout(new GridLayout(2, 1));final JLabel lbSysTime new JLabel();final JLabel lbUserTime new JLabel();panelTime.add(lbSysTime, BorderLayout.NORTH);panelTime.add(lbUserTime, BorderLayout.SOUTH);// 设置系统时间定时器Timer sysTimeAction new Timer(500, new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {long timeMillis System.currentTimeMillis();SimpleDateFormat df new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);lbSysTime.setText( 系统时间 df.format(timeMillis));}});sysTimeAction.start();userTimeAction new Timer(1000, new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {lbUserTime.setText( 您已用时 (usedTime) sec.);}});userTimeAction.start();panelComponent.add(panelTime, BorderLayout.EAST);}/** 添加消息区*/private void addPanelMsg(JPanel panelComponent) {// panelComponent.setBorder(new TitledBorder(消息区));panelComponent.setLayout(new GridLayout(1, 3));Font font14 new Font(, 4, 14);Font font28 new Font(, 2, 28);JPanel panelMsg new JPanel();panelMsg.setBorder(new TitledBorder(消息区));JLabel lbPass1 new JLabel(关卡第);lbPass1.setFont(font14);panelMsg.add(lbPass1);// 显示关卡数lbPass new JLabel( pass);lbPass.setForeground(Color.RED);lbPass.setFont(font28);panelMsg.add(lbPass);JLabel lbPass2 new JLabel(关/总共10关);lbPass2.setFont(font14);panelMsg.add(lbPass2);panelComponent.add(panelMsg, BorderLayout.CENTER);}/** 界面初始化*/private void init() {ImageIcon image new ImageIcon(icon/icon.png);this.setIconImage(image.getImage());// 设置窗口初始大小this.setSize(515, 600);// 设置窗口初始位置this.setLocation(500, 50);// 设置窗口标题this.setTitle(数独游戏(By侯龙超));// 设置窗体不允许改变大小this.setResizable(false);// 设置默认关闭操作this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}游戏区画布package hlc.shudu.ui;import hlc.shudu.src.ShuduHelper;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dialog.ModalExclusionType;import java.awt.event.InputEvent;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JDialog;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.border.Border;import javax.swing.border.TitledBorder;public class ShuduCanvers extends JPanel implements MouseListener {ShuduCell[][] cells;// 得到数独数组int[][] maps new int[9][9];private SelectNumFrame selectNum;/** 默认构造函数*/public ShuduCanvers() {ShuduMainFrame.usedTime 0;maps ShuduHelper.getMap();// 加载数独区this.setLayout(null);cells new ShuduCell[9][9];for (int i 0; i 9; i) {for (int j 0; j 9; j) {// this.remove(cells[i][j]);// 创建单元格cells[i][j] new ShuduCell();// 设置位置cells[i][j].setLocation(20 i * 50 (i / 3) * 5, 20 j * 50 (j / 3) * 5);if (passRole(ShuduMainFrame.pass)) {cells[i][j].setText( maps[i][j]);// 设置背景颜色cells[i][j].setBackground(getColor(maps[i][j]));cells[i][j].setEnabled(false);cells[i][j].setForeground(Color.gray);} else {cells[i][j].addMouseListener(this);}this.add(cells[i][j]);}}checkFinish();// reLoadCanvers();}/** 检查是否完成*/private void checkFinish() {for (int i 0; i 9; i) {for (int j 0; j 9; j) {if (!check(i, j)) {return;}}}// 停止用户用时计时器ShuduMainFrame.userTimeAction.stop();// 清除所有cell监听clearAllListener();// 闯关数加一ShuduMainFrame.pass 1;if (ShuduMainFrame.pass 10) {int o JOptionPane.showConfirmDialog(this, 您已经通关了是否重头开始, , 0);if (o 1) {System.exit(0);} else {ShuduMainFrame.pass 1;}} else {JOptionPane.showMessageDialog(this, 恭喜你通过本关用时 ShuduMainFrame.usedTime 秒\n即将进入下一关);}// 更新关卡提示ShuduMainFrame.lbPass.setText( ShuduMainFrame.pass);// 开始新的关卡reLoadCanvers();// 打开用户用时计时器ShuduMainFrame.userTimeAction.start();}/** 检查指定坐标处的单元格*/private boolean check(int i, int j) {if (cells[i][j].getText().isEmpty()) {return false;}for (int k 0; k 9; k) {if (cells[i][j].getText().trim().equals(cells[i][k].getText().trim()) j!k) {return false;}if (cells[i][j].getText().trim().equals(cells[k][j].getText().trim()) i ! k) {return false;}int ii (i / 3) * 3 k / 3;int jj (j / 3) * 3 k % 3;if (cells[i][j].getText().trim().equals(cells[ii][jj].getText().trim()) !(i ii j jj)) {return false;}}return true;}/** 重新加载数独区*/public void reLoadCanvers() {ShuduMainFrame.usedTime 0;maps ShuduHelper.getMap();for (int i 0; i 9; i) {for (int j 0; j 9; j) {this.remove(cells[i][j]);// 创建单元格cells[i][j] new ShuduCell();// 设置位置cells[i][j].setLocation(20 i * 50 (i / 3) * 5, 20 j * 50 (j / 3) * 5);if (passRole(ShuduMainFrame.pass)) {cells[i][j].setText( maps[i][j]);// 设置背景颜色cells[i][j].setBackground(getColor(maps[i][j]));cells[i][j].setEnabled(false);cells[i][j].setForeground(Color.gray);} else {cells[i][j].addMouseListener(this);}this.add(cells[i][j]);}}this.repaint();checkFinish();}/** 根据关卡随机产生该位置是否显示数字*/private boolean passRole(int pass) {// TODO Auto-generated method stubreturn Math.random() * 11 pass;}/** 根据数字获得颜色*/private Color getColor(int i) {Color color Color.pink;switch (i) {case 1:color new Color(255, 255, 204);break;case 2:color new Color(204, 255, 255);break;case 3:color new Color(255, 204, 204);break;case 4:color new Color(255, 204, 153);break;case 5:color new Color(204, 255, 153);break;case 6:color new Color(204, 204, 204);break;case 7:color new Color(255, 204, 204);break;case 8:color new Color(255, 255, 255);break;case 9:color new Color(153, 255, 153);break;default:break;}return color;}Overridepublic void mouseClicked(MouseEvent e) {// TODO Auto-generated method stub}Overridepublic void mousePressed(MouseEvent e) {int modes e.getModifiers();if ((modes InputEvent.BUTTON3_MASK) ! 0) {// 点击鼠标右键// 清空点击单元格上的内容((ShuduCell) e.getSource()).setText();} else if ((modes InputEvent.BUTTON1_MASK) ! 0) {// 点击鼠标左键// 如果选择数字窗口存在则销毁if (selectNum ! null) {selectNum.dispose();}// 新建一个选择窗口selectNum new SelectNumFrame();// 设置成模态窗口selectNum.setModal(true);// 设置选择窗口在显示器上的位置selectNum.setLocation(e.getLocationOnScreen().x,e.getLocationOnScreen().y);// 将点击的单元格传递给数字选择窗口selectNum.setCell((ShuduCell) e.getSource());// 显示数字选择窗口selectNum.setVisible(true);}checkFinish();}/** 清除所有cell的点击监听*/private void clearAllListener() {for (int i 0; i 9; i) {for (int j 0; j 9; j) {cells[i][j].removeMouseListener(this);}}}Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub}Overridepublic void mouseEntered(MouseEvent e) {// TODO Auto-generated method stub}Overridepublic void mouseExited(MouseEvent e) {// TODO Auto-generated method stub}}数独单元格package hlc.shudu.ui;import java.awt.Color;import java.awt.Font;import javax.swing.JButton;public class ShuduCell extends JButton {public ShuduCell(){this.setSize(50,50);Font font new Font(,2,24);this.setFont(font);this.setBackground(new Color(255,153,102));this.setForeground(Color.BLUE);}}数字选择框package hlc.shudu.ui;import java.awt.Color;import java.awt.Window;import java.awt.event.InputEvent;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;public class SelectNumFrame extends JDialog implements MouseListener {private ShuduCell cell;public void setCell(ShuduCell cell) {this.cell cell;}public SelectNumFrame(){//隐藏界面上面的工具栏this.setUndecorated(true);this.setSize(150, 150);this.setBackground(new Color(255,204,153, 123));this.setLayout(null);addNum();}//添加数字1~9private void addNum() {for (int i 0; i 3; i) {for (int j 0; j 3; j) {JButton btn new JButton();btn.setSize(50, 50);btn.setLocation(i*50,j*50);btn.setText((j*3i1));btn.addMouseListener(this);this.add(btn);}}}Overridepublic void mouseClicked(MouseEvent e) {// TODO Auto-generated method stub}Overridepublic void mousePressed(MouseEvent e) {int modes e.getModifiers();if ((modes InputEvent.BUTTON1_MASK) ! 0) {JButton btn (JButton) e.getSource();cell.setText(btn.getText());}this.dispose();}Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub}Overridepublic void mouseEntered(MouseEvent e) {// TODO Auto-generated method stub}Overridepublic void mouseExited(MouseEvent e) {// TODO Auto-generated method stub}}以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。
http://www.zqtcl.cn/news/289859/

相关文章:

  • 企业建设银行网站登录不了wordpress需要ftp
  • 广州营销型网站建设团队专业建设内涵包括哪些内容
  • 网站如何做响应式布局外国网站上做Task
  • 知乎网站建设入门书大渡口集团网站建设
  • 免费网站建设是什么宁波网站建设的价格表
  • 网站设计导航栏高度网站设计的经营范围
  • 帮别人建设网站多少利润北京网站建设公司华网制作作
  • 微信网站需要备案吗瑞安商业网站建设
  • 做网站如何计算工资wordpress stheme
  • 网站建设销售人才简历wordpress 搜索tag
  • 设计网站专业云南旅行社网站开发
  • 小规模开普票网站建设几个点张浦专业做网站
  • 点击图片跳转到网站怎么做链接网址后缀名大全
  • php网站开发优化crm客户系统
  • 韩国网站免费模板wordpress数据库名称
  • 如何修改网站发布时间贵阳网站建设报价
  • 东莞网站推广培训免费云电脑
  • 湖北网站建设详细方案脑叶公司手机版下载
  • 淄博网站制作平台形象怎样建设旅游网站
  • 广州花都网站建设网站改版协议
  • 中国建设协会网站首页工信部网站备案被删除
  • 丹阳网站建设案例dedecms 购物网站
  • 网站上怎么做动画广告视频下载seo黑帽是什么意思
  • 服装网站建设网综合社区网站开发费用
  • 做网站预付款 怎么做账做律师网站的网络公司
  • 购物网站开发模板小程序注册拉新
  • 怎么建立一个网站能够与讯飞云对话罗湖附近公司做网站建设哪家好
  • 唐山网站制作公司北京网站开发优选ls20227
  • php 网站备份代码广州网站设计公司招聘
  • 做ppt的网站兼职上海未来网站建设公司