package gui; public class GUITest { public static void main(String[] args) { GUIGussValue jf=new GUIGussValue(); //新建一个窗口 jf.setVisible(true);//让窗口显示出来 } } package gui; import java.util.Random; import javax.swing.JOptionPane; public class GussValueGui { public static void nicai() { int min = 0, max = 1000000000; int BeginBegin = inputInt("请输入最小值:", min, max, null); int End = inputInt("请输入最大值:", min, max, null); Random rd = new Random(); if (BeginBegin == End) { JOptionPane.showMessageDialog(null, "最大值和最小值不能相等/n游戏将重新开/n"); return; } else if (BeginBegin > End) { JOptionPane.showMessageDialog(null, "最大值不能小于最小值/n游戏将重新开/n"); return; } int guessValue = rd.nextInt(End - BeginBegin) + BeginBegin; System.out.println(guessValue); long beginTime = System.currentTimeMillis(); int b = 0; while (true) { b++; String returnValue = JOptionPane.showInputDialog("/n现在开始计时 /n" + "请输入" + BeginBegin + "~" + End + "內的整數");// 得到一个输入的数 if (returnValue == null || "".equals(returnValue)) { JOptionPane.showMessageDialog(null, "游戏将结束"); return; } else { int input = Integer.parseInt(returnValue); if (input > guessValue) { JOptionPane.showMessageDialog(null, "大了"); } else if (input < guessValue) { JOptionPane.showMessageDialog(null, "小了:"); } else { long endTime = System.currentTimeMillis(); JOptionPane.showMessageDialog(null, "你對了" + "用时:" + (endTime - beginTime) / 1000.0 + "秒"); break; } } } if (b <= 5) { JOptionPane.showMessageDialog(null, "哇" + b + "次你就猜对了你真是一个高手!~~~"); } else if (b <= 10) { JOptionPane.showMessageDialog(null, "猜了" + b + "次才猜对加油啊!~~~"); } else { JOptionPane.showMessageDialog(null, "脑残!!!~~~"); } } public static void zhu() { while (true) { int aa = JOptionPane.showConfirmDialog(null, "欢迎进入猜数游戏/n是否开始游戏?"); if (aa == JOptionPane.OK_OPTION) { nicai(); break; } else if (aa == JOptionPane.NO_OPTION) { JOptionPane.showMessageDialog(null, "Bye-bye"); return; } else if (aa == JOptionPane.CANCEL_OPTION) { break; } else if (aa == JOptionPane.CLOSED_OPTION) break; } while (true) { int a = JOptionPane.showConfirmDialog(null, "遊戲結束确定退出?"); if (a == JOptionPane.OK_OPTION) { JOptionPane.showMessageDialog(null, "Bye-bye"); break; } else if (a == JOptionPane.NO_OPTION) { nicai(); } else if (a == JOptionPane.CANCEL_OPTION) { break; } else if (a == JOptionPane.CLOSED_OPTION) break; } } public static int inputInt(String msg, int min, int max, String key) { do { String s = JOptionPane.showInputDialog(null, msg, "猜数字", JOptionPane.WARNING_MESSAGE); if (s == null) { JOptionPane.showMessageDialog(null, "不输入别想关"); } else if (s.equals(key)) { return 1000000000; } else { try { int i = Integer.parseInt(s); if (i >= min && i <= max) { return i; } else if (i == JOptionPane.CLOSED_OPTION) { JOptionPane.showMessageDialog(null, "!!!!!!!!!!!!!"); } else { JOptionPane.showMessageDialog(null, "输入错误!~2啊不看要求!~"); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "输入错误!~不长眼啊!~必须输入一个数字!~"); } } } while (true); } } package gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; public class GUIGussValue extends JFrame implements ActionListener { JPasswordField password; JTextField name; JButton ok; JButton cancel; public GUIGussValue() { this.setTitle("登录"); // 设置标题 this.setBounds(568, 320, 300, 200); // 设置位置 this.setResizable(false); // 设置关闭窗口的时候程序也关闭 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(null);// 设置布局管理器,使用绝对布局 JLabel nameMsg = new JLabel("姓名:"); nameMsg.setBounds(50, 20, 50, 30); // //下面两行和setBounds功能一致 // nameMsg.setLocation(50, 20); //设定位置,致 // nameMsg.setSize(50, 30); //设定大小 name = new JTextField(); name.setBounds(100, 20, 120, 30); JLabel passwordMsg = new JLabel("密码:"); passwordMsg.setBounds(50, 50, 50, 30); password = new JPasswordField(); password.setBounds(100, 50, 120, 30); this.ok = new JButton("确定"); ok.setBounds(80, 100, 60, 20); this.cancel = new JButton("取消"); cancel.setBounds(160, 100, 60, 20); this.add(name); this.add(nameMsg); this.add(passwordMsg); this.add(password); // 按钮 this.add(ok); this.add(cancel); // 事件 ok.addActionListener(this); cancel.addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { // System.out.println("点击的按钮提示:"+e.getActionCommand()); GussValueGui aa = new GussValueGui(); Object src = e.getSource(); // 得到事件发生的源(发生在哪) if (src.equals(ok)) { String passwordStr = password.getText(); String nameText = name.getText(); if (checkIsUser(nameText, passwordStr)) { JOptionPane.showMessageDialog(this, "用户名密码正确"); this.dispose(); aa.zhu(); } else { JOptionPane.showMessageDialog(null, "密码或姓名错误"); } } else { this.setVisible(false); // JOptionPane.showMessageDialog(this, "点击了取消"); this.dispose(); } } public boolean checkIsUser(String nameText, String passwordStr) { return (nameText.equals("ni") && passwordStr.equals("123")) || (nameText.equals("liu") && passwordStr.equals("234")) || (nameText.equals("周") && passwordStr.equals("1")); } }