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

来源:互联网 发布:蓝牙4.0测试软件下载 编辑:程序博客网 时间:2024/04/27 17:38

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

图形界面实现效果:




/** * 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);}}