24点游戏是一个经典游戏模型,我们使用Java的swing的窗体来呈现,
下面是结合JFrame和ActionListener接口的Innerplay项目
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class innerplay extends JFrame implements ActionListener{
JTextArea counting=new JTextArea(2,10);
JTextArea show=new JTextArea(2,10);
//动态显示输入状态的Area
JButton jclear=new JButton("重置");
JButton jnew=new JButton("下一局");
JButton jexit=new JButton("退出");
//数字按钮
JButton j[]=new JButton[4];
//符号按钮
JButton jplus=new JButton("+");
JButton jminu=new JButton("-");
JButton jmul=new JButton("*");
JButton jdiv=new JButton("/");
JButton jlef=new JButton("(");
JButton jrig=new JButton(")");
//判断前面是否已录入数字,不能重复判入“1”和“2”组成“12”
boolean followint=false;
接下来,我们引入innerplay的构造方法
public innerplay(){
setTitle("24点游戏");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//系统选项区
JPanel but=new JPanel();
but.add(jnew);
but.add(jclear);
but.add(jexit);
//数字显示区
JPanel play=new JPanel();
play.setLayout(new GridLayout(1,4,10,10));
j=RandomSet();
for(int i=0;i<j.length;i++){
play.add(j[i]);
}
//符号和算式,结果显示区
JPanel answer=new JPanel();
show.setText("0");
show.setEditable(false);
answer.add(jplus);
answer.add(jminu);
answer.add(jmul);
answer.add(jdiv);
answer.add(jlef);
answer.add(jrig);
answer.add(counting);
answer.add(show);
//点击监控事件
for(int i=0;i<4;i++){
j[i].addActionListener(this);
}
jplus.a