编写应用GUI组件的程序,完成猜数游戏:程序随机产生一个数,用户输入猜数,程序每次给出大或小的提示,最多猜十次。
输出示例可参考:
代码实现:
package test; import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridLayout; 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.JPanel; import javax.swing.JScrollPane; import javax.swing.Jtextarea; import javax.swing.JTextField; public class Guessnumber extends Jframe implements ActionListener{ private static final long serialVersionUID = 1L; int rand_num; int count = 0; int max = 100; int min = 0; Jtextarea textarea = new Jtextarea(5,60); JTextField text; JButton button; JPanel p2 = new JPanel(new FlowLayout()); public Guessnumber(){ Container container = this.getContentPane(); // 设置总的容器 rand_num = (int)(Math.random()*100) + 1; setTitle("猜数字"); container.setLayout(new BorderLayout()); setSize(100,200); setLocation(400,200); setVisible(true); setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); JScrollPane p1 = new JScrollPane(textarea); // 设置文本域 p1.setSize(200,400); p2.setPreferredSize(new Dimension(50,50)); // 设置标签 p2.add(new JLabel("请输入想猜数字:"),FlowLayout.LEFT); text = new JTextField(35); // 设置输入框 text.setSize(1,53); text.setLocation(100,50); p2.add(text,FlowLayout.CENTER); button = new JButton("猜一猜"); // 设置按钮 button.setSize(3,3); p2.add(button,FlowLayout.RIGHT); button.addActionListener(this); container.add(p1,BorderLayout.NORTH); container.add(p2,BorderLayout.SOUTH); pack(); } public static void main(String[] args){ new Guessnumber(); } @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("猜一猜")){ if(count < 10){ count++; int guess = Integer.parseInt(text.getText()); if(guess > rand_num){ max = guess; textarea.setText(textarea.getText() + "n第" + count + "次猜的" + guess + "猜大了,在[" + min +"," + max + "]中猜一个数字"); }else if(guess < rand_num){ min = guess; textarea.setText(textarea.getText() + "n第" + count + "次猜的" + guess + "猜小了,在[" + min +"," + max + "]中猜一个数字"); }else if(guess == rand_num){ textarea.setText(textarea.getText() + "n恭喜你!第" + count + "次猜的" + guess + "猜对了!"); } }else{ textarea.setText(textarea.getText() + "n已经10次了,没有机会了!"); } } text.setText(""); } }
结果展示:
分析:
1.main函数中最好只写函数的调用。
2.这个界面用到了awt和swing。
3.主类要继承Jframe类,引用ActionListener接口。
4.在主类的构造函数中,要设置总的容器(container),设置文本域(textarea)用来在窗口查看输出的提示等,要设置标签(label)提示输入的内容,要设置输入框(JTextField)来得到输入的内容,要设置按钮(button)来执行相应 *** 作,最后把相关组件添加到容器中。
5.在重写的actionPerformed方法中,写猜数字的具体的代码。
6.猜数字具体的代码需要注意:(1)判断猜数字猜的次数 (2)得出结果后,要在文本域中添加内容,使之能显示出来,同时也要获取之前文本域的内容,与新的内容一起显示 (3)在输出内容后,要把输入框内的内容清除,方便下次继续输入。
在这里推荐一个b站讲gui的视频教程:https://www.bilibili.com/video/BV1DJ411B75F?from=search&seid=18164031753067872366&spm_id_from=333.337.0.0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)