
你可以自己看着修改下:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
class gameFrame extends JFrame {
int i = 9; // 记录剩余的猜数字次数
int n = new Random().nextInt(900) + 100;
JMenuBar menu = new JMenuBar(); // 菜单栏
JMenu f = new JMenu("文件"); // 菜单项
JMenu he = new JMenu("帮助"); // 菜单项
JMenuItem quit = new JMenuItem("退出"); // 菜单选项
JMenuItem about = new JMenuItem("关于..."); // 菜单选项
JPanel in = new JPanel(new GridLayout(1, 4)); // 输入文本框所在行面板,hp,tfin,buttonArea将加入此面板
JPanel hp = new JPanel(new BorderLayout()); // 标签 help 将加入此面板;此面板将加入 in 面板
JLabel help = new JLabel("请输入100~1000之间的数字:"); // 输入框前面的提示文本
JPanel tfin = new JPanel(new BorderLayout()); // 输入框将加入此面板,“确定”
// 按钮将加入此面板;此面板将加入 in 面板
JTextField input = new JTextField(); // 输入框
JButton ensure = new JButton("确定"); // 确定输入按灶裤键钮
JPanel buttonsArea = new JPanel(new GridLayout(1, 2)); // 按键区(答案,重玩),此面板将加入
// in 面板
JPanel re = new JPanel(new BorderLayout()); // 重玩按钮区,repeat 按钮将加入此面板
JButton repeat = new JButton("重玩"); // 重玩按钮
JPanel an = new JPanel(new BorderLayout()); // answer 按钮隐巧区
JButton answer = new JButton("答案"); // answer 按钮
JTextArea a = new JTextArea(); // 提示文本显示区域
JPanel p = new JPanel(new BorderLayout()); // 文本域面板
gameFrame() { // 构造方法
// help.setAlignment(Label.RIGHT);
hp.add(help, BorderLayout.CENTER);
纯此 tfin.add(input, BorderLayout.CENTER);
tfin.add(ensure, BorderLayout.EAST);
re.add(repeat, BorderLayout.CENTER);
re.add(new JLabel(" "), BorderLayout.WEST);
an.add(answer, BorderLayout.CENTER);
an.add(new JLabel(" "), BorderLayout.WEST);
buttonsArea.add(re);
buttonsArea.add(an);
in.add(hp);
in.add(tfin);
in.add(buttonsArea);
this.add(in, BorderLayout.NORTH);
a.setEditable(false);
a.setLineWrap(true);
a.setWrapStyleWord(true);
a.setFont(new Font("font1", Font.BOLD, 15));
p.add(new JScrollPane(a));
// jsb.add(a);
// jsb.setOrientation(JScrollBar.VERTICAL);
this.add(p, BorderLayout.CENTER);
f.add(quit);
menu.add(f);
he.add(about);
menu.add(he);
this.setJMenuBar(menu);
input.addActionListener(new MyMonitor());
ensure.addActionListener(new MyMonitor());
repeat.addActionListener(new MyMonitor2());
answer.addActionListener(new MyMonitor3());
quit.addActionListener(new MyMonitor1());
about.addActionListener(new MyMonitor4());
this.addWindowListener(new MyWindowMonitor());
this.setBounds(400, 200, 550, 450);
this.setResizable(false);
this.setTitle("来,我们猜数字吧!");
this.setVisible(true);
}
class MyWindowMonitor extends WindowAdapter { // X 监听器
public void windowClosing(WindowEvent e) {
setVisible(false);
System.exit(0);
}
}
class MyMonitor1 implements ActionListener { // quit 退出菜单项监听器
public void actionPerformed(ActionEvent ex) {
System.exit(0);
}
}
class MyMonitor2 implements ActionListener { // repeat 重玩按钮监听器
public void actionPerformed(ActionEvent ex1) {
i = 9;
a.setText("");
n = new Random().nextInt(900) + 100;
}
}
class MyMonitor3 implements ActionListener { // answer 按钮监听器
public void actionPerformed(ActionEvent ex2) {
String str1 = new String("正确答案是:" + n);
a.append(str1 + " ");
}
}
class MyMonitor4 implements ActionListener { // 关于菜单项监听器
public void actionPerformed(ActionEvent ex3) {
JTextArea jta = new JTextArea();
jta.setText("此游戏版权归singsong所有,你可以玩此游戏,但由此游戏带来的一切后果,"
+ "由玩家自负。 游戏规则: 您有10次猜数字的机会,每次你可以输入100~1000之间的任意数值,按ENTER"
+ "或点击确认按钮,确认输入。 点击“答案”按钮可以显示答案。 一轮游戏结束后,可以点击“重玩”按钮进入新一轮游戏! "
+ "祝您游戏愉快!");
jta.setLineWrap(true);
jta.setWrapStyleWord(true);
jta.setEditable(false);
jta.setFont(new Font("font2", Font.TRUETYPE_FONT, 15));
// jta.setFont(new Font("font1",Font.BOLD,15));
JDialog jd = new JDialog();
jd.setTitle("帮助");
jd.add(jta);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
jd.setBounds(450, 300, 450, 300);
jd.setResizable(false);
jd.setVisible(true);
}
}
class MyMonitor implements ActionListener { // 确定按钮监听器
public int n1;
public void actionPerformed(ActionEvent e) {
if (i == -1) {
a.append("还要继续,请点击“重玩”按钮! ");
input.setText("");
}
else {
String str = input.getText();
input.setText("");
a.append(str + " ");
try {
n1 = Integer.parseInt(str);
} catch (NumberFormatException e1) {
n1 = -1;
}
if (n1 < 100 || n1 > 1000) {
a.append("无效输入!请重 新输入吧! ");
}
else if (n1 == n) {
a.append("恭喜你猜对了! ");
i = -1;
a.append("还要继续,请点击“重玩”按钮! ");
} else if (n1 > n) {
if (i == 0) {
String s = new String("大了!很遗憾你没能猜对! 还要继续,请点击“重玩”按钮! ");
a.append(s);
i--;
} else {
String s = new String("大了! 你还有" + i + "次机会! ");
a.append(s);
i--;
}
} else if (n1 < n) {
if (i == 0) {
String s = new String("小了!很遗憾你没能猜对! 还要继续,请点击“重玩”按钮! ");
a.append(s);
i--;
} else {
String s = new String("小了!你还有" + i + "次机会! ");
a.append(s);
i--;
}
}
}
}
}
}
public class Game {
public static void main(String args[]) {
gameFrame g = new gameFrame();
}
}
用java的awt?我做java两年了,没用过java写这玩意,这东西也就js写写玩玩。
写得不错了,加油!
颜色、字体可以适当调整一下。
这么简单的程序还是自己学着做吧