package Swing;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Work1 {
public static void main(String[] args) {
new JsqView(340, 240);
}
}
@SuppressWarnings("serial")
class JsqView extends JFrame {
JTextField jtf;
JButton jb1, jb2, jb3;
JButton[] jb;
JPanel jp1, jp2, jp3, jp4;
MyActionListener l;
public JsqView(int weith, int heigh) {
Container con = ContentPane();
con.setLayout(new BorderLayout(5, 10));
l = new MyActionListener(this);
jtf = new JTextField(26);
jp1 = new JPanel();
jp1.add(jtf);
jtf.setHorizontalAlignment(JTextField.RIGHT);
jp3 = new JPanel();
jp3.setLayout(new BorderLayout(5, 10));
jb1 = new JButton("Backspace");
jb2 = new JButton("CE");
jb3 = new JButton("C");
jb1.d);
jb1.addActionListener(l);
jb2.addActionListener(l);
jb2.d);
jb3.addActionListener(l);
jb3.d);
jp2 = new JPanel();
jp2.setLayout(new GridLayout(1, 3, 5, 5));
jp2.add(jb1);
jp2.add(jb2);
jp2.add(jb3);
jp4 = new JPanel();
jp4.setLayout(new GridLayout(4, 5, 5, 5));
jb = new JButton[20];
String[] str = { "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "%",
"1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };
for (int i = 0; i < 20; i++) {
jb[i] = new JButton(str[i]);
jb[i].addActionListener(l);
if (i == 3 || i == 8 || i == 13 || i == 18 || i == 19) {
jb[i].d);
}
jp4.add(jb[i]);
}
jp3.add(jp2, BorderLayout.NORTH);
jp3.add(jp4);
con.add(jp1, BorderLayout.NORTH);
con.add(jp3);
this.setTitle("计算器");
this.setSize(weith, heigh);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
class MyActionListener implements ActionListener {
JsqView jv;
char operator;
String temp;
Count c = new Count();
boolean b = false;
public MyActionListener(JsqView jv) {
this.jv = jv;
}
public void actionPerformed(ActionEvent e) {
javascript计算器代码 String str = e.getActionCommand().trim();
//System.out.println(str);
if (str.matches("[\\d\\.]")) {
//System.out.println(str);
if(b){
jv.jtf.setText("");
b = false;
}
StringBuffer sbf = new StringBuffer();
String s = Text().trim();
sbf.append(s);
if("".equals(s)&&".".equals(str)){
sbf.append(0+str);
}else if(s.matches("\\d+")){
sbf.append(str);
}else if(str.matches("\\d")){
sbf.append(str);
}
jv.jtf.String());
} else if (str.matches("[\\+\\-\\*\\/\\%]")) {
b =false;
operator = str.charAt(0);
//System.out.println(str);
temp = Text().trim();
jv.jtf.setText("");
} else if (str.equals("=")) {
String s = Text().trim();
// System.out.println(temp);
// System.out.println(s);
if("".equals(s)||s==null||temp==null){
return;
}
if((temp.matches("\\d+\\.\\d+"))||(s.matches("\\d+\\.\\d+"))){
double i = Double.parseDouble(temp);
double j = Double.parseDouble(s);
if(!b){
temp=s;
}
double sum =c.count(i, j, operator,jv);
jv.jtf.setText(sum + "");
}else{
long i = Long.parseLong(temp);
long j = Long.parseLong(s);
if(!b){
temp=s;
}
long sum = c.count(i, j, operator,jv);
jv.jtf.setText(sum + "");
}
b = true;
}else if(str.equals("1/x")){
String s = Text().trim();
double i = Double.parseDouble(s);
double sum = c.count(i,jv);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论