package program8;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Font;
public class Test {
static String input = "";
private JFrame frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test window = new Test();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Test() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setTitle("\u8BA1\u7B97\u5668");
frame.setBounds(100, 100, 400, 488);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField textArea = new JTextField();
textArea.setFont(new Font("Monospaced", Font.PLAIN, 30));
textArea.setBounds(0, 0, 286, 96);
JButton btnCe = new JButton("CE");
btnCe.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnCe.getText();
set_text(textArea,text);
}
});
btnCe.setBounds(287, 0, 95, 94);
frame.getContentPane().setLayout(null);
frame.getContentPane().add(textArea);
frame.getContentPane().add(btnCe);
JPanel panel = new JPanel();
panel.setBounds(0, 96, 382, 344);
frame.getContentPane().add(panel);
panel.setLayout(new GridLayout(4, 4));
JButton btnNewButton = new JButton("7");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton);
JButton btnNewButton_1 = new JButton("8");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_1.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_1);
JButton btnNewButton_3 = new JButton("9");
btnNewButton_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_3.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_3);
JButton btnNewButton_4 = new JButton("/");
btnNewButton_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_4.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_4);
JButton btnNewButton_2 = new JButton("4");
btnNewButton_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_2.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_2);
JButton btnNewButton_6 = new JButton("5");
btnNewButton_6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_6.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_6);
JButton btnNewButton_5 = new JButton("6");
btnNewButton_5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_5.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_5);
JButton btnNewButton_8 = new JButton("*");
btnNewButton_8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_8.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_8);
JButton btnNewButton_12 = new JButton("1");
btnNewButton_12.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_12.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_12);
JButton btnNewButton_9 = new JButton("2");
btnNewButton_9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_9.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_9);
JButton btnNewButton_7 = new JButton("3");
btnNewButton_7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_7.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_7);
JButton btnNewButton_13 = new JButton("-");
btnNewButton_13.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_13.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_13);
JButton btnNewButton_10 = new JButton(".");
btnNewButton_10.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_10.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_10);
JButton btnNewButton_11 = new JButton("0");
btnNewButton_11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_11.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_11);
JButton btnNewButton_14 = new JButton("=");
btnNewButton_14.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_14.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_14);
JButton btnNewButton_15 = new JButton("+");
btnNewButton_15.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text=btnNewButton_15.getText();
set_text(textArea,text);
}
});
panel.add(btnNewButton_15);
}
public static void set_text(JTextField tf,String s){
if(s.equals("=")){
//进行字符串表达式的运算
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("nashorn");
try{
input = String.valueOf(scriptEngine.eval(input));
tf.setText(input);
}catch(ScriptException e){
e.printStackTrace();
}
}
else if(s.equals("CE")){
input = "";
tf.setText(input);
}
else{
input = input + s;
tf.setText(input);
}
}
}