求高手解决一下,用java做一个下面的程序
通过按钮产生1~100之间的随机数,然后再输入文本框中,随机输入数字,单击确定后,上方提示文本框中提示猜大了,还是猜小了。根据提示,不断输入猜的数字,直到猜对。...
通过按钮产生1~100之间的随机数,然后再输入文本框中,随机输入数字,单击确定后,上方提示文本框中提示猜大了,还是猜小了。根据提示,不断输入猜的数字,直到猜对。
展开
4个回答
展开全部
你可以自己看着修改下:
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 + "\n");
}
}
class MyMonitor4 implements ActionListener { // 关于菜单项监听器
public void actionPerformed(ActionEvent ex3) {
JTextArea jta = new JTextArea();
jta.setText("此游戏版权归singsong所有,你可以玩此游戏,但由此游戏带来的一切后果,"
+ "由玩家自负。\n游戏规则:\n您有10次猜数字的机会,每次你可以输入100~1000之间的任意数值,按ENTER"
+ "或点击确认按钮,确认输入。\n点击“答案”按钮可以显示答案。\n一轮游戏结束后,可以点击“重玩”按钮进入新一轮游戏!\n"
+ "祝您游戏愉快!");
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("还要继续,请点击“重玩”按钮!\n");
input.setText("");
}
else {
String str = input.getText();
input.setText("");
a.append(str + "\n");
try {
n1 = Integer.parseInt(str);
} catch (NumberFormatException e1) {
n1 = -1;
}
if (n1 < 100 || n1 > 1000) {
a.append("无效输入!请重 新输入吧!\n");
}
else if (n1 == n) {
a.append("恭喜你猜对了!\n");
i = -1;
a.append("还要继续,请点击“重玩”按钮!\n");
} else if (n1 > n) {
if (i == 0) {
String s = new String("大了!很遗憾你没能猜对!\n还要继续,请点击“重玩”按钮!\n");
a.append(s);
i--;
} else {
String s = new String("大了! 你还有" + i + "次机会!\n");
a.append(s);
i--;
}
} else if (n1 < n) {
if (i == 0) {
String s = new String("小了!很遗憾你没能猜对!\n还要继续,请点击“重玩”按钮!\n");
a.append(s);
i--;
} else {
String s = new String("小了!你还有" + i + "次机会!\n");
a.append(s);
i--;
}
}
}
}
}
}
public class Game {
public static void main(String args[]) {
gameFrame g = new gameFrame();
}
}
展开全部
用java的awt?我做java两年了,没用过java写这玩意,这东西也就js写写玩玩。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写得不错了,加油!
颜色、字体可以适当调整一下。
颜色、字体可以适当调整一下。
追问
这是VB做的,我要java做的
追答
差不多嘛,只不过组件名称换了、事件触发的方法换了,一些语法不同了。逻辑还是相似的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这么简单的程序还是自己学着做吧
更多追问追答
追问
这是VB做的,我要java做的
追答
不管用什么语言做都很简单。一个超级简单的界面加一个超级简单的逻辑。。。随便找本java书都能找到示例。而且你如果是在学习java的话,最好自己动手去做一下,最最基本的东西都不愿意亲手做的话你修的java课程很可能不及格哟~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询