项目要求:一共有十次机会猜猜随机生成的整形数值,并为程序设计一个图形界面
图形界面实现效果:
/**
* 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);
}
}