[英]Java GUI calculator textfield
尝试制作Java计算器,但文本字段显示不正确。 我想在相同的文本字段上显示方程式和答案,而不是方程式然后给出答案。 希望能够在同一行上显示“ 1 + 1 = 2”。 如果执行此操作,代码现在将如何显示,下一行将显示“ 1 + 1”,然后显示2。
//global = global.concat(num1);
如果我删除//,计算器将执行“ 1 + 1 =”,但答案不会显示。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Scanner;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
//import java.util.ActionEvent;
public class gui implements ActionListener {
public gui() {
}
public void actionPerformed(ActionEvent ae) {
// JOptionPane.showMessageDialog(ìHello is pressedî);
}
public static void main(String[] args) {
JFrame j = new JFrame("Calculator");
Container c = j.getContentPane();
// c.setLayout(new BorderLayout());
JPanel p1 = new JPanel();
p1.setLayout(new BorderLayout());
p1.setLayout(new GridLayout(4, 4, 4, 4));
final JTextField t = new JTextField(100);
Font myFontSize = t.getFont().deriveFont(Font.BOLD, 50f);
t.setFont(myFontSize);
c.add(t, BorderLayout.NORTH);
final JButton n1 = new JButton("1");
n1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n1.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n2 = new JButton("2");
n2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n2.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n3 = new JButton("3");
n3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n3.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n4 = new JButton("4");
n4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n4.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n5 = new JButton("5");
n5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n5.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n6 = new JButton("6");
n6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n6.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n7 = new JButton("7");
n7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n7.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n8 = new JButton("8");
n8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n8.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n9 = new JButton("9");
n9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n9.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n10 = new JButton("0");
n10.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n10.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n11 = new JButton("+");
n11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n11.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n12 = new JButton("-");
n12.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n12.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n13 = new JButton("*");
n13.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n13.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n14 = new JButton("/");
n14.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n14.getText();
String global = t.getText();
global = global.concat(num1);
t.setText(global);
}
});
final JButton n15 = new JButton("=");
n15.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n15.getText();
String global = t.getText();
// global = global.concat(num1);
t.setText(global);
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
try {
String s = engine.eval(global).toString();
t.setText(s);
} catch (ScriptException e1) {
e1.printStackTrace();
}
}
});
final JButton n16 = new JButton("C");
n16.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// String num1 = n16.getText();
String global = t.getText();
global = null;
t.setText(global);
}
});
p1.add(n1);
p1.add(n2);
p1.add(n3);
p1.add(n4);
p1.add(n5);
p1.add(n6);
p1.add(n7);
p1.add(n8);
p1.add(n9);
p1.add(n10);
p1.add(n11);
p1.add(n12);
p1.add(n13);
p1.add(n14);
p1.add(n15);
p1.add(n16);
c.add(p1, BorderLayout.CENTER);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setSize(350, 350);
j.setVisible(true);
}
}
按下=
,只需将当前文本与结果连接起来,就像...
final JButton n15 = new JButton("=");
n15.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String num1 = n15.getText();
String global = t.getText();
t.setText(global);
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
try {
String s = global + " = " +engine.eval(global).toString();
t.setText(s);
} catch (ScriptException e1) {
e1.printStackTrace();
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.