图形界面练习:数字猜猜看

项目要求:一共有十次机会猜猜随机生成的整形数值,并为程序设计一个图形界面

图形界面实现效果:




/**
 * swing的练习使用
 * 
 * @author SUMMER
 *
 */
public class JFrame_CaiCaiKan {

	public static int numberOfTimes = 0;

	public static void main(String[] args) {

		Random random = new Random();
		int num = random.nextInt(100);// 控制Random的范围

		JFrame frame = new JFrame("数字猜猜看");// 创建一个容器
		frame.setLayout(null);
		frame.addWindowListener(new MyWindowListener());
		frame.addMouseMotionListener(new MyMouseMotionListener());

		Container container = frame.getContentPane();
		container.setBackground(Color.WHITE);

		JMenu menu1 = new JMenu("开始");
		JMenu menu2 = new JMenu("帮助");
		JMenu menu3 = new JMenu("关于");

		Font fontMenu = new Font("微软雅黑", Font.PLAIN, 17);
		Font fontMenuItem = new Font("幼圆", Font.PLAIN, 17);

		menu1.setBounds(0, 0, 80, 30);
		menu1.setFont(fontMenu);
		ImageIcon menu1Icon = new ImageIcon(Toolkit.getDefaultToolkit().createImage("F:\\下载\\开始.png"));
		// menu1Icon.setImage(menu1Icon.getImage().getScaledInstance(16,16,Image.SCALE_DEFAULT));
		menu1.setIcon(menu1Icon);
		JMenuItem menu1Item1 = new JMenuItem("新游戏", new ImageIcon("F:\\下载\\任务重新开启.png"));
		menu1Item1.setFont(fontMenuItem);
		menu1.add(menu1Item1);
		JMenuItem menu1Item2 = new JMenuItem("统计信息", new ImageIcon("F:\\下载\\统计信息.png"));
		menu1Item2.setFont(fontMenuItem);
		menu1.add(menu1Item2);
		JMenuItem menu1Item3 = new JMenuItem("选项", new ImageIcon("F:\\下载\\选项.png"));
		menu1Item3.setFont(fontMenuItem);
		menu1.add(menu1Item3);
		JMenuItem menu1Item4 = new JMenuItem("更改外观", new ImageIcon("F:\\下载\\更改.png"));
		menu1Item4.setFont(fontMenuItem);
		menu1.add(menu1Item4);
		JMenuItem menu1Item5 = new JMenuItem("退出", new ImageIcon("F:\\下载\\退出.png"));
		menu1Item5.setFont(fontMenuItem);
		menu1.add(menu1Item5);

		menu2.setBounds(85, 0, 80, 30);
		menu2.setFont(fontMenu);
		ImageIcon menu2Icon = new ImageIcon(Toolkit.getDefaultToolkit().createImage("F:\\下载\\帮助.png"));
		// menu2Icon.setImage(menu2Icon.getImage().getScaledInstance(16,16,Image.SCALE_DEFAULT));
		menu2.setIcon(menu2Icon);
		JMenuItem menu2Item1 = new JMenuItem("查看帮助", new ImageIcon("F:\\下载\\帮助.png"));
		menu2Item1.setFont(fontMenuItem);
		menu2.add(menu2Item1);
		JMenuItem menu2Item2 = new JMenuItem("获取更多游戏", new ImageIcon("F:\\下载\\获取.png"));
		menu2Item2.setFont(fontMenuItem);
		menu2.add(menu2Item2);

		menu3.setBounds(170, 0, 80, 30);
		menu3.setFont(fontMenu);
		ImageIcon menu3Icon = new ImageIcon(Toolkit.getDefaultToolkit().createImage("F:\\下载\\关于.png"));
		menu3Icon.setImage(menu3Icon.getImage().getScaledInstance(16, 16, Image.SCALE_DEFAULT));
		menu3.setIcon(menu3Icon);
		JMenuItem menu3Item1 = new JMenuItem("作者:张小烦", new ImageIcon("F:\\下载\\作者.png"));
		menu3Item1.setFont(fontMenuItem);
		menu3.add(menu3Item1);
		JMenuItem menu3Item2 = new JMenuItem("关于数字猜猜看", new ImageIcon("F:\\下载\\关于.png"));
		menu3Item2.setFont(fontMenuItem);
		menu3.add(menu3Item2);

		JMenuBar menuBar = new JMenuBar();
		menuBar.add(menu1);
		menuBar.add(menu2);
		menuBar.add(menu3);
		menuBar.setLayout(null);
		menuBar.setBounds(0, 0, 600, 30);
		container.add(menuBar);

		JLabel label = new JLabel("欢迎来到数字猜猜看", JLabel.CENTER);
		Font font = new Font("华文彩云", Font.PLAIN, 30);
		label.setFont(font);
		label.setForeground(Color.RED);
		label.setBounds(75, 65, 450, 70);
		container.add(label, BorderLayout.NORTH);

		JTextField jTextField = new JTextField("请输入一个随机的数值");
		jTextField.setBounds(122, 140, 355, 55);
		jTextField.setForeground(Color.black);
		jTextField.setBackground(Color.WHITE);
		jTextField.setFont(new Font("幼圆", font.PLAIN, 25));
		jTextField.setHorizontalAlignment(jTextField.CENTER);
		jTextField.setEnabled(false);// 设置文本不可输入
		Border border = new MatteBorder(1, 1, 1, 1, Color.LIGHT_GRAY);
		jTextField.setBorder(border);
		jTextField.addKeyListener(new MyKeyListener());// 键盘监听
		container.add(jTextField);

		JTextArea tField = new JTextArea("游戏结果");
		tField.setBounds(122, 500, 355, 89);
		tField.setFont(new Font("幼圆", font.PLAIN, 25));
		tField.setForeground(Color.BLACK);
		tField.setBackground(Color.WHITE);
		Border borderi = new MatteBorder(1, 1, 1, 1, Color.LIGHT_GRAY);
		tField.setBorder(borderi);
		tField.setLineWrap(true);// 激活自动换行功能
		tField.setWrapStyleWord(true); // 激活换行不断字
		tField.setEnabled(false);// 设置文本不可输入
		container.add(tField);

		JPanel jPanel = new JPanel();
		jPanel.setBackground(Color.WHITE);
		jPanel.setBounds(122, 220, 355, 250);
		Font fontButton = new Font("粗体", Font.BOLD, 22);
		jPanel.setLayout(new GridLayout(4, 3, 20, 20));

		JButton but1 = new JButton("1");
		but1.setFont(fontButton);
		but1.setBackground(Color.WHITE);
		but1.addMouseListener(new MyMouseListener());
		but1.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->1");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "1");
				} else {
					jTextField.setText("1");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but1);

		JButton but2 = new JButton("2");
		but2.setFont(fontButton);
		but2.setBackground(Color.WHITE);
		but2.addMouseListener(new MyMouseListener());
		but2.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->2");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "2");
				} else {
					jTextField.setText("2");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but2);

		JButton but3 = new JButton("3");
		but3.setFont(fontButton);
		but3.setBackground(Color.WHITE);
		but3.addMouseListener(new MyMouseListener());
		but3.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->3");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "3");
				} else {
					jTextField.setText("3");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but3);

		JButton but4 = new JButton("4");
		but4.setFont(fontButton);
		but4.setBackground(Color.WHITE);
		but4.addMouseListener(new MyMouseListener());
		but4.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->4");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "4");
				} else {
					jTextField.setText("4");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but4);

		JButton but5 = new JButton("5");
		but5.setFont(fontButton);
		but5.setBackground(Color.WHITE);
		but5.addMouseListener(new MyMouseListener());
		but5.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->5");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "5");
				} else {
					jTextField.setText("5");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but5);

		JButton but6 = new JButton("6");
		but6.setFont(fontButton);
		but6.setBackground(Color.WHITE);
		but6.addMouseListener(new MyMouseListener());
		but6.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->6");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "6");
				} else {
					jTextField.setText("6");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but6);

		JButton but7 = new JButton("7");
		but7.setFont(fontButton);
		but7.setBackground(Color.WHITE);
		but7.addMouseListener(new MyMouseListener());
		but7.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->7");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "7");
				} else {
					jTextField.setText("7");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but7);

		JButton but8 = new JButton("8");
		but8.setFont(fontButton);
		but8.setBackground(Color.WHITE);
		but8.addMouseListener(new MyMouseListener());
		but8.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->8");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "8");
				} else {
					jTextField.setText("8");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but8);

		JButton but9 = new JButton("9");
		but9.setFont(fontButton);
		but9.setBackground(Color.WHITE);
		but9.addMouseListener(new MyMouseListener());
		but9.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->9");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "9");
				} else {
					jTextField.setText("9");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but9);

		JButton but10 = new JButton("←");
		but10.setFont(new Font("粗体", Font.BOLD, 30));
		but10.setBackground(Color.WHITE);
		but10.addMouseListener(new MyMouseListener());
		but10.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				if (jTextField.getText().length() > 0) {
					System.out.println("键入按键         -----> ←");
					String box = jTextField.getText().substring(0, jTextField.getText().length() - 1);
					jTextField.setText(box);
				} else {
					jTextField.setText("当前屏幕没有内容");
				}

			}
		});
		jPanel.add(but10);

		JButton but11 = new JButton("0");
		but11.setFont(fontButton);
		but11.setBackground(Color.WHITE);
		but11.addMouseListener(new MyMouseListener());
		but11.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {

				System.out.println("键入按键         ----->0");
				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					jTextField.setText(jTextField.getText() + "0");
				} else {
					jTextField.setText("0");
				}
				tField.setText(" ");
			}
		});
		jPanel.add(but11);

		JButton but12 = new JButton("确认");
		but12.setFont(fontButton);
		but12.setBackground(Color.WHITE);
		but12.addMouseListener(new MyMouseListener());
		but12.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				System.out.println("键入按键         ----->确认");

				if (Pattern.compile("[0-9]+").matcher(jTextField.getText()).matches()) {
					if (jTextField.getText().length() <= 2 && jTextField.getText().length() > 0) {
						int box = Integer.parseInt(jTextField.getText());
						numberOfTimes++;
						if (numberOfTimes <= 10) {
							if (num < box) {
								tField.setText("猜的数字比较大哟!\n");
								tField.setText(tField.getText() + "还有" + (10 - numberOfTimes) + "次机会哟,加油");
							} else if (num > box) {
								tField.setText("猜的数字比较小哟!\n");
								tField.setText(tField.getText() + "还有" + (10 - numberOfTimes) + "次机会哟,加油");
							} else {
								tField.setText("恭喜你!猜中拉\n");
								tField.setText(tField.getText() + "请前往艾盈科技前台领取您价值五百万的奖品哟");
							}
						} else {
							tField.setText("每次游戏只有十次机会哟!!!");
							tField.setText(tField.getText());
						}
					} else {
						tField.setText("请输入俩位整型数值");
					}

				} else {
					tField.setText("输入错误了哟,只能输入数字类型");
				}
				jTextField.setText(" ");

			}
		});
		jPanel.add(but12);

		container.add(jPanel);

		JPanel jPanel2 = new JPanel();
		jPanel2.setBackground(Color.WHITE);
		jPanel2.setBounds(22, 595, 550, 100);
		jPanel2.setLayout(null);
		Font fontJPanel2 = new Font("幼圆", Font.BOLD, 24);
		JLabel labelPanel1 = new JLabel("游戏规则");
		labelPanel1.setFont(fontJPanel2);
		labelPanel1.setForeground(Color.GRAY);
		labelPanel1.setBounds(227, 0, 100, 50);
		jPanel2.add(labelPanel1);
		JLabel labelPanel2 = new JLabel("每次共有十次机会,猜一个0~100以内的随机整数数值");
		labelPanel2.setFont(new Font("华文行楷", Font.PLAIN, 18));
		labelPanel2.setForeground(Color.LIGHT_GRAY);
		labelPanel2.setBounds(79, 30, 550, 50);
		jPanel2.add(labelPanel2);
		JLabel labelPanel3 = new JLabel("十次之内猜中的用户,可以得到价值五百万的现金大奖");
		labelPanel3.setFont(new Font("华文行楷", Font.PLAIN, 18));
		labelPanel3.setForeground(Color.LIGHT_GRAY);
		labelPanel3.setBounds(73, 50, 550, 50);
		jPanel2.add(labelPanel3);

		container.add(jPanel2);

		frame.setSize(600, 750);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
		frame.setIconImage(Toolkit.getDefaultToolkit().createImage("E:\\Hbulider\\study\\img\\电影.png"));
		frame.setResizable(false);
		frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
	}
}













  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值