关于java小程序的问题

import java.util.*;
//导入实用包util下所有的类
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CaiShu {
public static void main(String[] args) {
Win f = new Win();
f.setVisible(true);
}
} } 这里为什么要定义这样一个类,有什么用?

class Win extends JFrame implements ActionListener
这里为什么要用这样一个接口,有什么用,接口我是一点都不明白

{
JLabel labe;
JButton butt;
Random a = new Random();
private int i = 0;
private int num;

JTextField text1, text2;

JPanel p;

Win() {
super("猜数游戏");
labe = new JLabel("我心里有个数,它是1---100之间的,你能猜出来吗?");
butt = new JButton("确认");
text1 = new JTextField(5);
text2 = new JTextField(20);

p = new JPanel();
这里的JPanel和JFrame不一样吗?不都是面板吗?它是用来干什么
Container con = getContentPane();
Container是类吗?getContentPane()是什么

text2.setEditable(false);
//使输出结果文本域不可编辑
butt.addActionListener(this); addActionListener是构造函数吗?那么 this是什么?
//执行结果动作
con.setLayout(new GridLayout(4, 1)); setLayout还是构造函数吗?是类Container的构造函数吗?
//设置整个界面的长宽比
p.add(text1);
//添加输入数字文本域
p.add(butt);
con.add(labe);
//添加游戏标签
con.add(p);
con.add(text2);
//添加输出结果信息文本域
add是构造函数吗?

setSize(300, 300);
//设置窗口尺寸
setVisible(true);
//设置窗口可视

setSize是构造函数吗?
pack();
addWindowListener(new WindowAdapter()
这里的程序段请详细讲解
{
public void windowClosing(WindowEvent e)
这里的程序段也请详细讲解
{
setVisible(false);
System.exit(0);
}
});

}

public void actionPerformed(ActionEvent e)
此段也请详细讲解,actionPerformed是什么?
{
int shu;
while (true) {
shu = Integer.parseInt(text1.getText());

if(i==0)
{
num = a.nextInt(100);
}
i++;
if (i == 10) {
text2.setText("结束吧,你没有希望了!你一共猜测了");
i = 0;
break;
}

if (e.getSource() == butt) {
if (shu > num) {
text2.setText("输入的数大了,输小点的!");
} else if (shu < num) {
text2.setText("输入的数小了,输大点的!");
} else if (shu == num) {
text2.setText("恭喜你,猜对了!");
if (i <= 2)
text2.setText("你真是个天才!");
else if (i <= 6)
text2.setText("还将就,你过关了!");
else if (i <= 8)
text2.setText("但是你还……真笨!");
else
text2.setText("你实在是太笨了!");
}
break;
}
}
}
}
我们暑期实习java五天,老师就让我们编一个java小游戏程序,什么都不懂,还要写五千字的实习报告,我想请各位大虾帮我写一下这个程序的设计思路,越详细越好,问题都在程序段里了,最好能结合原理,通俗易懂。。。感激不尽

/*
* CaiShu.java 2008-7-15 上午08:23:11
*
* Copyright Dalian Edgedu Computer Profession Training School.
*
* Licensed under the Edgedu License, Version 1.0 (the "License");
* You may obtain a copy of the License at
*
* http://www.edgedu.com/licenses/LICENSE-1.0
*
*/
package program;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
* @author yinmang
*/
public class CaiShu {
public static void main(String[] args) {
Win f = new Win();
f.setVisible(true);
}
}
// 这里为什么要定义这样一个类,有什么用?
// 每个应用程序都应有一个main函数,它是程序的入口,程序执行时会先寻找这个方法

class Win extends JFrame implements ActionListener
// 这里为什么要用这样一个接口,有什么用,接口我是一点都不明白
// 这个接口是一个监听器,顾名思义,它的作用就是监听。
//在这个程序里它监听的是按钮,看它是否被按下(或者其他事件,如获得焦点等)

{
JLabel labe;
JButton butt;
Random a = new Random();
private int i = 0;
private int num;

JTextField text1, text2;

JPanel p;

Win() {
super("猜数游戏");
labe = new JLabel("我心里有个数,它是1---100之间的,你能猜出来吗?");
butt = new JButton("确认");
text1 = new JTextField(5);
text2 = new JTextField(20);

p = new JPanel();
// 这里的JPanel和JFrame不一样吗?不都是面板吗?它是用来干什么
//JFrame只是一个界面,也就是个框架,
//要想把控件放在该界面中,必须把控件放在JPanel中,然后再把JPanel放在JFrame中,JPanel作为一个容器使用。

Container con = getContentPane();
// Container是类吗?getContentPane()是什么
// Container是一个类,更详细可查看api,用getContentPane()方法获得JFrame的内容面板,再对其加入组件

text2.setEditable(false);
// 使输出结果文本域不可编辑

butt.addActionListener(this);
// addActionListener是构造函数吗?那么 this是什么?
// 显然不是,构造函数不能使用对象点,到方式调用(butt.addActionListener)。
// this是指当前对象。

// 执行结果动作

con.setLayout(new GridLayout(4, 1));
// setLayout还是构造函数吗?是类Container的构造函数吗?
// 同上;构造函数是与类同名的方法(函数)

// 设置整个界面的长宽比
p.add(text1);
// 添加输入数字文本域
p.add(butt);
con.add(labe);
// 添加游戏标签
con.add(p);
con.add(text2);
// 添加输出结果信息文本域
// add是构造函数吗?
// 你应该正确理解构造函数。。。。。

setSize(300, 300);
// 设置窗口尺寸
setVisible(true);
// 设置窗口可视

// setSize是构造函数吗?
// ||-_-

pack();
addWindowListener(new WindowAdapter()
// 这里的程序段请详细讲解
//public abstract class java.awt.event.WindowAdapter implements
//java.awt.event.WindowListener, java.awt.event.WindowStateListener,
//java.awt.event.WindowFocusListener
//上面可以看到,这是一个抽象类,这种写法属于匿名内部类。
//想要理解对象的概念。也就是说首先得理解构造函数。

{
public void windowClosing(WindowEvent e)
// 这里的程序段也请详细讲解
// 这里是在重写WindowAdapter中的方法。作用是结束程序。重名称可以看出是正在关闭窗口的意思。

{
setVisible(false);
System.exit(0);
}
});

}

public void actionPerformed(ActionEvent e)
// 此段也请详细讲解,actionPerformed是什么?
// 这是监听器中的方法。就是说按钮有动作的时候会执行这里。

{
int shu;
while (true) {
shu = Integer.parseInt(text1.getText());//将获得的String 类型的值转换成int 类型

if (i == 0) {
num = a.nextInt(100);
}
i++;
if (i == 10) {
text2.setText("结束吧,你没有希望了!你一共猜测了");
i = 0;
break;//判断输入次数,
}

if (e.getSource() == butt) {
if (shu > num) {
text2.setText("输入的数大了,输小点的!");
} else if (shu < num) {
text2.setText("输入的数小了,输大点的!");
} else if (shu == num) {
text2.setText("恭喜你,猜对了!");
if (i <= 2)
text2.setText("你真是个天才!");
else if (i <= 6)
text2.setText("还将就,你过关了!");
else if (i <= 8)
text2.setText("但是你还……真笨!");
else
text2.setText("你实在是太笨了!");
}
break;//判断输入值得准确性。
}
}
}
}

另外你这个程序有bug如果输入的不是数字,而是字母或者别的符号,程序将出现异常。。。。。有问题,发信息。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-07-14
1.class CaiShu这个类是程序的入口
2.class Win extends JFrame implements ActionListener接口的作用是用来监听下面button的动作的。
3.JFrame是一个顶层容器,JPanel是一个可以包含组件的内部容器
4.Container从名字就知道,他也是一种容器.getContentPane()是一个方法,就是初始化一个容器。
5.butt.addActionListener(this)将按钮的动作添加到监听列表里去。this指的就是当前这个class
6.con.setLayout(new GridLayout(4, 1)); 是一个方法,表示设置窗口布局,其中的“参数”是窗口布局的样式,new GridLayout(4, 1)为网格布局样式。其中的参数“4”“1”分别为网格的“行数”和“列数”。
7.con.add(text2); add是个方法,给con容器添加文本输入区域text2.
8.setSize是设置窗口大小,也是个方法。
9.addWindowListener()添加目标窗口到windows的监听列表里。
10.public void actionPerformed(ActionEvent e)前面你把button添加到监听列表里,这里就是当你点下button按钮时,程序将调用actionPerformed()这个方法.
11.public void windowClosing(WindowEvent e)
这里的程序段也请详细讲解
{
setVisible(false);
System.exit(0);
}
});
当你前面你添加了窗口到监听列表,这时候当你点下右上角那个叉叉来关闭窗口时,这个动作会触发这个windowClosing()方法

-------------------------------
程序就是现画了一个用户的GUI界面,然后根据用户输入的值与那个随机数进行比较。
第2个回答  2008-07-15
哥们这个问题我给你说过一回:

我估计你给上 80元钱都没人给你说。

因为这个要是一步步用文字给你说明白得2-3小时以上,还有可能给说的你分晕菜!

这个游戏程序几乎涵盖了Java--GUI里的全部基础知识点和Java基础语法。

用文字向没接触过Java语言的人说明这些是件非常困难的事情。

我给你个学习思路你自己找些资料看看:
1.Java中的继承封装你要熟悉下,

2.是Java中的抽象类和接口你要熟悉。

3.GUI的容器,组件,及组件的一些方法和属性

4.什么是事件 ,及组件下事件怎么应用。本回答被提问者采纳
第3个回答  2008-07-14
那个类是测试类!包含有main方法的,程序从此处开始运行的

首先生成一个随机数.保存起来.然后根据用户输入的值与那个随机数进行比较,根据比较结果进行不同的显示!大概流程是这样的..
第4个回答  2008-07-19
说实话,现在给你讲解怎么都没用 你刚接触5天。。。。

等你CORE java 学到 GUI的时候这些你都明白了

现在说什么你都听不懂。。。

上面的分析很不错了

我看了一下你问的问题。都是学到GUI最基本的常识了 所以你别着急

慢慢来
相似回答