【Java】利用GUI图形用户界面设计石头剪刀布游戏
石头剪刀布游戏 2.1【问题描述】 用JAVA 语言设计如下界面的石头剪刀布游戏。游戏的一方点击界面上石头、剪刀、布按钮,游戏的 另一方计算机随机选择,然后给出游戏结果。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class work11 extends JFrame implements ActionListener {
JButton jiandao,shitou,bu,clear;
JPanel pane12,panel1;
JLabel label;
public work11() {
setTitle("窗体");
setLocation(250,250);//窗体左上顶点坐标
setSize(300,300);
panel1 =new JPanel();
panel1.setBackground(Color.yellow);
shitou = new JButton("石头");
jiandao =new JButton("剪刀");
bu = new JButton("布");
clear = new JButton("清空");
pane12=new JPanel();
pane12.setBackground(Color.green);
label =new JLabel("选择剪刀、石头、布开始游戏");//运行窗口以后显示的标签
shitou.addActionListener(this);//下面的四行是事件监听器,监听用户的输入
bu.addActionListener(this);
jiandao.addActionListener(this);
clear.addActionListener(this);
panel1.add(shitou);//把组件放进窗体中
panel1.add(jiandao);
panel1.add(bu);
panel1.add(clear);
pane12.add(label);
add(panel1,BorderLayout.NORTH);
add(pane12,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==shitou){
int i=((int)(Math.random()*10))%3;//给电脑随机分配结果
switch(i){
case 0 :label.setText("你出石头,电脑出石头,平局!");break;
case 1 :label.setText("你出石头,电脑出剪子,恭喜你赢了!");break;
case 2 :label.setText("你出石头,电脑出布,很遗憾你输了!");break;
}
}
else if(e.getSource()==bu){
int i=((int)(Math.random()*10))%3;
switch(i){
case 0 :label.setText("你出布,电脑出布,平局!");break;
case 1 :label.setText("你出布,电脑出石头,恭喜你赢了!");break;
case 2 :label.setText("你出布,电脑出剪刀,很遗憾你输了!");break;
}
}
else if(e.getSource()==jiandao){
int i=((int)(Math.random()*10))%3;
switch(i){
case 0 :label.setText("你出剪刀,电脑出剪刀,平局!");break;
case 1 :label.setText("你出剪刀,电脑出布,恭喜你赢了!");break;
case 2 :label.setText("你出剪刀,电脑出石头,很遗憾你输了!");break;
}
}
else if(e.getSource()==clear){
label.setText("选择剪刀、石头、布开始游戏");
}
}
public static void main(String[] args) {
work11 frame =new work11();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗体关闭按钮
frame.setVisible(true);//使窗体可见
}
}
运行结果:
