1、 Choice String box JTextArea 显示纯文本区域 JButton 帮助 JButton 清除 JButton 选择 加监听 成员方法initial() JOptionPane 关闭窗口消息 (定义类的功能、 JPanel choicePanel = new JPanel()定义面板 初始化界面) (将Choice及三个按钮添加到面板) JScrollPaneresultPanel=newJScrollPane(ta) (把文本域添加到一个科滚动面板里) 布局 JPanel totalPanel = new JPanel()定义面板Game类 (把显示分数的lable添加
2、到面板) getBoxPeop(String str)定义用户方法 方法getResult() 调用 (获得结果的方法) getBoxComp()电脑随机取数 Win check(int boxPeop, int boxComp) equal (主要比较方法) lost getTotal() (显示得分)调用 getPoint() Main方法 Game game = new Game();四、程序的执行流程 String box (四选一) 调用getResult() JTextArea作用(显示结果) Ta. setText();win=0; loss=0;equal=0;lb.setTe
3、xt(getTotal() JOptionPane.showMessageDialog六、游戏软件的主要界面截图主要的功能界面截图要加文字描述。1、初始化界面2、确定选择动物及结果表示3、帮助界面4、清除界面5、退出界面六、程序代码:这部分的要求附完整的程序代码,并且代码中必须加必要的注释。import java.util.Random;import javax.swing.*;import java.awt.*;/导入窗体工具import java.awt.event.*;/导入awt事件中所有的类public class Game extends JFrame /Game继承父类JFram
4、e private Random r; /创建一个新的随机数生成器 private final String box = 大象,老虎狐狸老鼠;/string数组 private JComboBox choice; /将按钮或可编辑字段与下拉列表组合 private JTextArea ta; /JTextArea 是一个显示纯文本的多行区域 private JLabel lb; /用于短文本字符串或图像或二者的显示区 private int win=0; private int loss=0; private int equal=0; public Game() /构造方法是用来构造类的对象
5、super(小动物大比拼/super是关键字表示直接父类的方法 实现对类game构造方法的调用 initial();/调用initial方法,就是下面定义的那个.该方法主要是初始界面 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300,200); /设置窗体大小 setLocation(530,260);/显示在桌面的位置 setVisible(true);/窗体可见 public void initial() /通过类的实例(某个对象)调用的方法 r = new Random(); choice = new JComboBo
6、x();/初始化choice这个下拉框 for(int i=0; ibox.length; i+) /为下拉框赋值 choice.addItem(boxi);/向滚动列表的末尾添加指定的项 choice.setBackground(Color.pink); ta = new JTextArea(7, 9);/初始化文本域7行9列 ta.setEditable(false);/让用户不能编辑文本域即不能在里面写东西 JButton helpbut=new JButton(帮助/帮助按钮的创建于监听及消息窗口内容 helpbut.addActionListener(new ActionListen
7、er() public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(null,选择一个动物与电脑选择的动物进行比拼,大象控制老虎和狐狸,老虎控制狐狸和老鼠,狐狸控制老鼠,老鼠控制大象 ); JButton okBut = new JButton(选择/新建一个选择的按钮 okBut.addActionListener(new ActionListener() /给出选择按钮加个监听.如果点击就执行下面这个方法 public void actionPerformed(ActionEvent e) ta.set
8、Text(getResult();/给文本域赋值.就是显示结果 lb.setText(getTotal();/给分数label赋值.就是显示分数 JButton clearBut = new JButton(清除/新建一个清除分数的按钮 clearBut.addActionListener(new ActionListener() /加监听 public void actionPerformed(ActionEvent e)/用户点击了就执行这个方法 ta.setText(/给文本域赋值为,就是清除他的内容 win=0;/win赋值为0 equal=0;/给显示分数那个文本赋值.因为前面已经都
9、赋值为0了.所以这句就是让显示分数那都为0 addWindowListener(new WindowAdapter() /关闭窗口弹出对话框及内容 public void windowClosing(WindowEvent e) JOptionPane.showMessageDialog(null,倩雪:好开心啊!我会在这里等你回来! );/设置对话框并为对话框设置内容 showMessageDialog 告知用户某事已发生。 lb = new JLabel(getTotal();/初始化显示分数 JPanel choicePanel = new JPanel();/定义一个面板 choice
10、Panel.add(choice);/把下拉框加到面板里 choicePanel.add(okBut);/把选择按钮加到面板里 choicePanel.add(clearBut);/把清除分数按钮加到面板里 choicePanel.add(helpbut);/把帮助按钮加到面板里 JScrollPane resultPanel = new JScrollPane(ta);/把文本域加到一个可滚动的面板里面.JScrollPane就是可滚动的面板. JPanel totalPanel = new JPanel();/再定义个面板.用来显示分数 totalPanel.add(lb);/把那个显示分
11、数的label加到里面去 Container c =getContentPane();/下面就是布局了 c.setLayout(new BorderLayout(); c.add(choicePanel, BorderLayout.NORTH); c.add(resultPanel, BorderLayout.CENTER); c.add(totalPanel, BorderLayout.SOUTH); public String getResult()/获得结果的方法 返回值是一个String.这个返回值会用来显示在文本域里面 String tmp = ; int boxPeop = cho
12、ice.getSelectedIndex();/获得你选择的的索引.从0开始的.没有就返回-1 int boxComp = getBoxComp();/获得电脑出的索引. tmp += 倩雪选择:t + boxboxComp;n你选择: + boxboxPeop;n结果: + check(boxPeop, boxComp); return tmp; public int getBoxPeop(String str) return choice.getSelectedIndex(); public int getBoxComp() /就是产生一个0-3的随机数 return r.nextInt(
13、4);/Random的nextInt(int i)方法就是产生一个0-i)的随机整数 public String check(int boxPeop, int boxComp) String result= if(boxPeop = boxComp) result=真有默契,一样了! equal+; else if(boxPeop=0&boxComp=1|boxPeop=0&boxComp=2|boxPeop=1&boxComp=3| boxPeop=2&boxComp=3|boxPeop=3&boxComp=0) result = 恭喜你 ,你赢了! win+;boxComp=3|boxPe
14、op=1&boxComp=0|boxPeop=2&boxComp=1|boxPeop=3&boxComp=2)很遗憾,你输了! loss+; return result; public int getPoint() return (win-loss)*10; public String getTotal() return 赢: + win + 平: + equal + 输: + loss + 得分: + getPoint(); public static void main(String args) Game game = new Game(); 7、总结 通过此游戏让我了解了以前没有用过的知
15、识,在制作游戏时虽然问题多多。但是通过查帮助文档以及询问别人,问题都差不多解决了,虽然没有做出来自己心中所想,但相对自己来说,这是一种进步,以下是制作游戏过程中注意到的 showConfirmDialog 询问一个确认问题,如 yes/no/cancel。showMessageDialog 告知用户某事已发生showXxxDialog 方法返回整数时,可能的值为:YES_OPTION NO_OPTION CANCEL_OPTION OK_OPTION CLOSED_OPTION getDefaultCloseOperation 返回用户在此窗体上发起 close 时执行的操作。JComboBo
16、x 将按钮或可编辑字段与下拉列表组合 JTextArea JTextArea 是一个显示纯文本的多行区域 JLabel 用于短文本字符串或图像或二者的显示区构造方法:构造方法是用来构造类的对象的,方法名和类名相同没有返回值。一般用 new 构造方法名() 来创建该类的对象。在不写构造方法的情况下会有一个默认的无参构造方法。成员方法:简单地说就是可以通过类的实例(某个对象)调用的方法,也就是我们正常情况下使用的方法。addItem 向滚动列表的末尾添加指定的项。JButton clearBut = new JButton(新建一个清除分数的按钮 clearBut.addActionListener(new ActionListener() 添加监听布局 Container c =getContentPane(); c.add(choicePanel, BorderLayout.NORTH);Container 添加到容器中的组件放在一个列表中。列表的顺序将定义组件在容器内的正向堆栈顺序。如果将组件添加到容器中时未指定索引,则该索引将被添加到列表尾部(此后它位于堆栈顺序的底部)。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2