import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.border.*;
import java.lang.*;public class Suan24 extends JFrame implements ActionListener
{
short i;
JLabel photo[]=new JLabel[4];
JTextField bds;
JButton begin,ans,check;
JTextArea expl;
short RandomData[]=new short[4];
JScrollPane pict[]=new JScrollPane[4];
JPanel inputp=new JPanel();
JButton exitButton,explButton;
JToolBar toolbar;
Do24 o;
JLabel disptime;
Timer timer;
int times=0;
Suan24()
{
//设置框架标题
super("快算24扑克牌游戏");
//添加窗口事件监听器
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//取得框架的内容面板
Container con=getContentPane();
//创建并添加组件
JPanel input=new JPanel();
BorderLayout layout=new BorderLayout();
input.setLayout(layout);
// input.setBackground(Color.blue); explButton=new JButton("游戏说明");
explButton.addActionListener(this);
explButton.setActionCommand("intro");
exitButton=new JButton("退出");
exitButton.addActionListener(this);
exitButton.setActionCommand("exit");
toolbar=new JToolBar();
toolbar.add(explButton);
toolbar.add(exitButton);
toolbar.add(disptime);
con.add(toolbar,"North");
Box nBox=Box.createHorizontalBox();
for(i=0;i<4;i++)
{
photo[i]=new JLabel(new ImageIcon("E:\\game\\pic1\\bj.gif"));
pict[i]=new JScrollPane(photo[i]);
inputp.add(pict[i]); }
nBox.add(inputp);
nBox.setBackground(Color.red); Box box=Box.createHorizontalBox();
bds=new JTextField(20);
box.add(new JLabel("请输入计算表达式"));
box.add(Box.createHorizontalStrut(5));
bds.addActionListener(this);
box.add(bds);
box.add(Box.createHorizontalGlue());
//添加按钮
Box buton=Box.createHorizontalBox();
begin=new JButton("开始发牌");
begin.addActionListener(this);
ans=new JButton("提交答案");
ans.addActionListener(this);
check=new JButton("查看答案");
check.addActionListener(this);
buton.add(begin);
buton.add(ans);
buton.add(check);
Box wBox=Box.createHorizontalBox();
wBox.add(box);
wBox.add(buton);
Box eBox=Box.createHorizontalBox();
expl=new JTextArea(10,30);
eBox.add(Box.createVerticalStrut(10));
Box sBox=Box.createHorizontalBox();
sBox.add(wBox);
sBox.add(eBox);
nBox.setBackground(Color.blue);
con.add(nBox,"Center");
con.add(sBox,"South");
//增加一个带标题的边框
/* Border border=BorderFactory.createTitledBorder(
BorderFactory.createLineBorder(Color.RED,2),
"快算24扑克牌游戏",
TitledBorder.CENTER,TitledBorder.ABOVE_TOP,
new Font("隶书",Font.BOLD,36),
Color.blue);
input.setBorder(border);
*/
//设置框架可见
setBounds(200,100,600,500);
setVisible(true);
//setExtendedState(MAXIMIZED_BOTH);
}
//实现ActionListener接口中的方法
public void actionPerformed(ActionEvent e)
{ //退出
if (e.getActionCommand().equals("exit"))
{
if (JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog(this,"你确定要退出本系统吗?","确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE))
{
System.exit(0);
}
}
if (e.getActionCommand().equals("intro"))
{
Texts text=new Texts();
}
//按"开始发牌"按钮随机显示扑克牌
if (e.getSource()==begin)
{
while (true){
int dataBak[] = new int[4];
for(i=0;i<4;i++)
{
RandomData[i]=(short)((Math.random()*15)+1);
dataBak[i]=RandomData[i];
}
for(i=0;i<4;i++)
{
if (RandomData[i]>10)
{
RandomData[i]=1;
}
}
o=new Do24(RandomData[0],RandomData[1],RandomData[2],RandomData[3]);
if(o.getResultNumber()!=0)
{
for(i=0;i<4;i++)
{ String name="E:\\game\\pic1\\"+dataBak[i]+".gif";
photo[i].setIcon(new ImageIcon(name));
}
break;
}
}
bds.setText("");
disptime=new JLabel("用时:");
timer=new Timer(1000,this);
timer.start();
disptime.setText("用时(秒):"+times++);
if (times>300)
{
timer.stop();
JOptionPane.showMessageDialog(this,"时间到!");
times=0;
}
}
//按"提交答案"校对结果
if (e.getSource()==ans||e.getSource()==bds)
{
String res;
for(i=0;i<o.getResultNumber();i++)
{
res=o.Result[i];
String s=bds.getText();
int t=res.length()-3;
if(res.regionMatches(0,s,0,t))
{
JOptionPane.showMessageDialog(null,"恭喜您,答对了!!\n 用时:"+times);
timer.stop();
break;
}
}
if(i>=o.getResultNumber())
JOptionPane.showMessageDialog(null,"笨蛋,答错了!!");
}
//按"查看答案"按钮
if(e.getSource()==check)
{
JOptionPane.showMessageDialog(null,"正确答案是:"+o.Result[0]);
}
}
public static void main(String args[])
{
Suan24 game;
game=new Suan24();
}
}
class Texts extends JFrame
{
JLabel aboutp;
JTextArea about;
JPanel panel3; Texts()
{
super("游戏说明");
String text;
text="1 、点击 开始发牌 按钮,游戏开始,系统会随机发出4张扑克牌,同时计时器开始计时。\n2、玩家根据牌面数值(1-10为其实际数值,11-13、大小王都为1)使用+、-、*、/及括号写出计算表达式,使得结果为24。要求每张牌只能用一次。\n3、请你相信每一次的牌都可运算出结果,不可算的牌系统会自动重新出牌。";
setSize(330,400);
ImageIcon icon=new ImageIcon("E:\\game\\pic1\\15.gif");
aboutp=new JLabel("",icon,JLabel.RIGHT);
about=new JTextArea(text,10,25);
about.setLineWrap(true);
about.setEditable(false);
JScrollPane sp=new JScrollPane(about);
panel3=new JPanel();
panel3.add(aboutp);
panel3.add(sp);
Container con=getContentPane();
con.add(panel3,"Center");
setVisible(true);
}
}
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.border.*;
import java.lang.*;public class Suan24 extends JFrame implements ActionListener
{
short i;
JLabel photo[]=new JLabel[4];
JTextField bds;
JButton begin,ans,check;
JTextArea expl;
short RandomData[]=new short[4];
JScrollPane pict[]=new JScrollPane[4];
JPanel inputp=new JPanel();
JButton exitButton,explButton;
JToolBar toolbar;
Do24 o;
JLabel disptime;
Timer timer;
int times=0;
Suan24()
{
//设置框架标题
super("快算24扑克牌游戏");
//添加窗口事件监听器
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//取得框架的内容面板
Container con=getContentPane();
//创建并添加组件
JPanel input=new JPanel();
BorderLayout layout=new BorderLayout();
input.setLayout(layout);
// input.setBackground(Color.blue); explButton=new JButton("游戏说明");
explButton.addActionListener(this);
explButton.setActionCommand("intro");
exitButton=new JButton("退出");
exitButton.addActionListener(this);
exitButton.setActionCommand("exit");
toolbar=new JToolBar();
toolbar.add(explButton);
toolbar.add(exitButton);
toolbar.add(disptime);
con.add(toolbar,"North");
Box nBox=Box.createHorizontalBox();
for(i=0;i<4;i++)
{
photo[i]=new JLabel(new ImageIcon("E:\\game\\pic1\\bj.gif"));
pict[i]=new JScrollPane(photo[i]);
inputp.add(pict[i]); }
nBox.add(inputp);
nBox.setBackground(Color.red); Box box=Box.createHorizontalBox();
bds=new JTextField(20);
box.add(new JLabel("请输入计算表达式"));
box.add(Box.createHorizontalStrut(5));
bds.addActionListener(this);
box.add(bds);
box.add(Box.createHorizontalGlue());
//添加按钮
Box buton=Box.createHorizontalBox();
begin=new JButton("开始发牌");
begin.addActionListener(this);
ans=new JButton("提交答案");
ans.addActionListener(this);
check=new JButton("查看答案");
check.addActionListener(this);
buton.add(begin);
buton.add(ans);
buton.add(check);
Box wBox=Box.createHorizontalBox();
wBox.add(box);
wBox.add(buton);
Box eBox=Box.createHorizontalBox();
expl=new JTextArea(10,30);
eBox.add(Box.createVerticalStrut(10));
Box sBox=Box.createHorizontalBox();
sBox.add(wBox);
sBox.add(eBox);
nBox.setBackground(Color.blue);
con.add(nBox,"Center");
con.add(sBox,"South");
//增加一个带标题的边框
/* Border border=BorderFactory.createTitledBorder(
BorderFactory.createLineBorder(Color.RED,2),
"快算24扑克牌游戏",
TitledBorder.CENTER,TitledBorder.ABOVE_TOP,
new Font("隶书",Font.BOLD,36),
Color.blue);
input.setBorder(border);
*/
//设置框架可见
setBounds(200,100,600,500);
setVisible(true);
//setExtendedState(MAXIMIZED_BOTH);
}
//实现ActionListener接口中的方法
public void actionPerformed(ActionEvent e)
{ //退出
if (e.getActionCommand().equals("exit"))
{
if (JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog(this,"你确定要退出本系统吗?","确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE))
{
System.exit(0);
}
}
if (e.getActionCommand().equals("intro"))
{
Texts text=new Texts();
}
//按"开始发牌"按钮随机显示扑克牌
if (e.getSource()==begin)
{
while (true){
int dataBak[] = new int[4];
for(i=0;i<4;i++)
{
RandomData[i]=(short)((Math.random()*15)+1);
dataBak[i]=RandomData[i];
}
for(i=0;i<4;i++)
{
if (RandomData[i]>10)
{
RandomData[i]=1;
}
}
o=new Do24(RandomData[0],RandomData[1],RandomData[2],RandomData[3]);
if(o.getResultNumber()!=0)
{
for(i=0;i<4;i++)
{ String name="E:\\game\\pic1\\"+dataBak[i]+".gif";
photo[i].setIcon(new ImageIcon(name));
}
break;
}
}
bds.setText("");
disptime=new JLabel("用时:");
timer=new Timer(1000,this);
timer.start();
disptime.setText("用时(秒):"+times++);
if (times>300)
{
timer.stop();
JOptionPane.showMessageDialog(this,"时间到!");
times=0;
}
}
//按"提交答案"校对结果
if (e.getSource()==ans||e.getSource()==bds)
{
String res;
for(i=0;i<o.getResultNumber();i++)
{
res=o.Result[i];
String s=bds.getText();
int t=res.length()-3;
if(res.regionMatches(0,s,0,t))
{
JOptionPane.showMessageDialog(null,"恭喜您,答对了!!\n 用时:"+times);
timer.stop();
break;
}
}
if(i>=o.getResultNumber())
JOptionPane.showMessageDialog(null,"笨蛋,答错了!!");
}
//按"查看答案"按钮
if(e.getSource()==check)
{
JOptionPane.showMessageDialog(null,"正确答案是:"+o.Result[0]);
}
}
public static void main(String args[])
{
Suan24 game;
game=new Suan24();
}
}
class Texts extends JFrame
{
JLabel aboutp;
JTextArea about;
JPanel panel3; Texts()
{
super("游戏说明");
String text;
text="1 、点击 开始发牌 按钮,游戏开始,系统会随机发出4张扑克牌,同时计时器开始计时。\n2、玩家根据牌面数值(1-10为其实际数值,11-13、大小王都为1)使用+、-、*、/及括号写出计算表达式,使得结果为24。要求每张牌只能用一次。\n3、请你相信每一次的牌都可运算出结果,不可算的牌系统会自动重新出牌。";
setSize(330,400);
ImageIcon icon=new ImageIcon("E:\\game\\pic1\\15.gif");
aboutp=new JLabel("",icon,JLabel.RIGHT);
about=new JTextArea(text,10,25);
about.setLineWrap(true);
about.setEditable(false);
JScrollPane sp=new JScrollPane(about);
panel3=new JPanel();
panel3.add(aboutp);
panel3.add(sp);
Container con=getContentPane();
con.add(panel3,"Center");
setVisible(true);
}
}
解决方案 »
- Tomcat 发布 java web程序
- 如何泛型实例化
- java中数组如何初始化
- 一个java.sql.date的问题,用pstmt.setDate怎么样才能插入yyyy-MM-dd HH:mm:ss
- synchronized(this),这个this指的是什么???
- 新年好,散分求答案。
- 非常简单的一个编程基础性问题,谁会?谢
- JAVA初级问题
- 求助!关于PopupMenuListener接口类小问题。在线等,搞定马上送分!
- 各位好!请问如何得到ssl证书及如何install?100分感谢!!!
- Java中利用JMF编写摄像头拍照程序(转贴精华贴,求救详解!)
- 为什么我用javamail写的程序,总是收不到邮件的正文内容?
就要交作业了
高手们就帮帮我吧
先谢谢大家了