写的第一个窗口化的java程序

原本写的猜数游戏是给予for循环还有多重if else if结构编写的 噢噢噢 还有随机数字 差点就忘了Scanner扫描器

import java.util.Scanner;

public class ForDome {
	public static void main(String[] args) {

		Scanner input = new Scanner(System.in);
		
		final int price = (((int) (Math.random() * 1000)) % 9 + 1) * 1000;
		int guessPrice = -1;
		int count = 0;
		String prizeName = null;
		for (int i = 0; i <= 5; i++) {
			System.out.print("请输入你猜的数字(第" + ++count + "次):");
			guessPrice = input.nextInt();
			if (guessPrice == price) {
				if (count == 1) {
					prizeName = "恭喜你中了头奖:iPhoneXS Max自选颜色一台!!!";
				} else if (count == 2 || count == 3) {
					prizeName = "恭喜你中了二等奖:华为(HUAWEI)荣耀手环zero!!!";
				} else if (count == 4 || count == 5) {
					prizeName = "恭喜你中了三等奖:小米蓝牙耳机青春版!!!";
				}
				break;
			} else if (guessPrice < price) {
				System.out.println("小了!");
			} else if (guessPrice > price) {
				System.out.println("大了!");
			}
		}
		if (prizeName == null) {
			System.out.println("五次机会已用完,下次再接再厉吧!!!");
		} else {
			System.out.println(count + "次答对!");
			System.out.println(prizeName);
		}
		input.close();
	}
}

写的第一个窗口化的java程序_第1张图片

操作台运行实例

后来我心血来潮想做一个GUI图形用户模式的猜数字游戏 但是我对Java的Swing属性相当不熟悉,这两天我几乎都是摸着石子过河,每个难点都是靠百度解决的 其中有一个JTextField文本框属性的录入我就一直没有解决这个问题,我不知道在循环中怎么多次录入这个信息 我选择去掉了循环,但是这样以后就失去了次数限制的功能 后来我想到设置变量,使用if判断点击按钮的次数,然后判断奖品等级还有猜数字的次数 但是!因为每次点击按钮我设置的变量都会被再次初始化,这就达不到变量的变化 而不同方法中的变量又无法通用,后来我看到static可以设置整个程序通用的静态变量 最后我解决了这个问题 说实话这个程序里我还是有很多问题没有解决,都是生搬硬造整上去的
package numberPlay;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
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.JPanel;
import javax.swing.JTextField;

public class numberPlay {
	static int count = 0;
	final static int price = (((int) (Math.random() * 1000)) % 9 + 1) * 1000;

	public static void main(String[] args) {
		JFrame.setDefaultLookAndFeelDecorated(true);
		JFrame frame = new JFrame("猜数字游戏");
		frame.setSize(350, 200);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel panel = new JPanel();
		frame.add(panel);
		placeComponents(panel);
		frame.setVisible(true);int windowWidth = frame.getWidth(); //获得窗口宽
		int windowHeight = frame.getHeight(); //获得窗口高
		Toolkit kit = Toolkit.getDefaultToolkit(); //定义工具包
		Dimension screenSize = kit.getScreenSize(); //获取屏幕的尺寸
		int screenWidth = screenSize.width; //获取屏幕的宽
		int screenHeight = screenSize.height; //获取屏幕的高
		frame.setLocation(screenWidth/2-windowWidth/2, screenHeight/2-windowHeight/2);//设置窗口居中显示 
	}

	private static void placeComponents(JPanel panel) {
		Font font1 = new Font("宋体", Font.BOLD, 24);
		panel.setLayout(null);
		JLabel biaoTi = new JLabel("猜数字游戏");
		biaoTi.setFont(font1);
		biaoTi.setBounds(113, 15, 125, 25);
		panel.add(biaoTi);
		JLabel qianZui = new JLabel("输入:");
		qianZui.setBounds(70, 50, 50, 25);
		panel.add(qianZui);
		JTextField input = new JTextField();
		input.setBounds(110, 50, 170, 25);
		panel.add(input);
		JButton jbHello = new JButton("确认");// 按钮
		jbHello.setBounds(135, 100, 80, 25);
		panel.add(jbHello);
		jbHello.addActionListener(new ActionListener() {// 给按钮添加事件接收器
			@Override
			public void actionPerformed(ActionEvent e) {// 接受到事件后,进行下面的处理
				count++;
				int guessPrice = -1;
				String Str = null;
				String prizeName = null;
				String results = null;
				Str = input.getText();
				guessPrice = Integer.parseInt(Str);
				if (guessPrice == price) {
					if (count == 1) {
						prizeName = "恭喜你中了头奖:iPhoneXS Max自选颜色一台!!!";
						JOptionPane.showMessageDialog(null, prizeName);// 弹出对话框,显示Hello World
						System.exit(0);
					} else if (count == 2 || count == 3) {
						prizeName = "恭喜你中了二等奖:华为(HUAWEI)荣耀手环zero!!!";
						JOptionPane.showMessageDialog(null, prizeName);// 弹出对话框,显示Hello World
						System.exit(0);
					} else if (count == 4 || count == 5) {
						prizeName = "恭喜你中了三等奖:小米蓝牙耳机青春版!!!";
						JOptionPane.showMessageDialog(null, prizeName);// 弹出对话框,显示Hello World
						System.exit(0);
					}
				} else if (guessPrice < price && !(count >= 5)) {
					results = "小了!请重新输入!";
					JOptionPane.showMessageDialog(null, results);
				} else if (guessPrice > price && !(count >= 5)) {
					results = "大了!请重新输入!";
					JOptionPane.showMessageDialog(null, results);
				} else if (count >= 5 && guessPrice != price) {
					prizeName = "很遗憾!五次机会已用完,下次再接再厉吧!!!";
					JOptionPane.showMessageDialog(null, prizeName);// 弹出对话框,显示Hello World
					System.exit(0);
				}
			}
		});
	}
}
``
<p align=center>
<img src="https://img-blog.csdnimg.cn/20181227223201929.gif">
<p align=center>GUI Swing窗口运行实例</p>
</p>
这个是程序效果,随机生成10009000的整千数字,每次猜数字会有太大或者太小的提示,总共五次机会,三种奖品等级!
等有时间了我还是得好好琢磨一个这个程序,摸透它!
2018.12.27

你可能感兴趣的:(记录,java,Swing)