package A;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Carculator extends JFrame implements ActionListener {
/*****北面的控件******/
private JPanel jp_north = new JPanel();//设置了一个面板(面板没有设置布局是一个流式布局)
private JTextField input_text = new JTextField();
// private JButton c_Btn=new JButton("c");//北面的两个控件
/*****中间的控件******/
private JPanel jp_Center = new JPanel();
public Carculator() throws HeadlessException {
this.init();
this.addnorth();
this.addCenterButton();
}
//初始化的方法
public void init() {
this.setTitle("计算器");
this.setSize(600, 600);
this.setLayout(new BorderLayout());
this.setResizable(false);//窗体不可以随便拉
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//添加北面的控件
public void addnorth() {
this.input_text.setPreferredSize(new Dimension(280, 30));
jp_north.add(input_text);
this.add(jp_north, BorderLayout.NORTH);//把面板加载到窗体里面(北面)
}
//添加中间的按钮
public void addCenterButton() {
String[] string = {"1", "2", "3", "+", "C", "4", "5", "6", "-", "←", "7", "8", "9", "*", "1/x", "0", "+/-", ".", "/", "="};
this.jp_Center.setLayout(new GridLayout(4, 5));//网格布局4行5列
//加了二十个按钮到中间面板中
for (int i = 0; i < 20; i++) {
//字符串取出添加到了按钮中去
String text = string[i];
JButton btn = new JButton(text);
if (text.equals("+") ||
text.equals("-") ||
text.equals("*") ||
text.equals("/") ||
text.equals("C") ||
text.equals("←") ||
text.equals("1/x") ||
text.equals("+/-") ||
text.equals(".") ||
text.equals("=")) {
btn.setForeground(Color.red);
}
btn.addActionListener(this);//监听
jp_Center.add(btn);
}
this.add(jp_Center, BorderLayout.CENTER);//把中间面板加载到整个窗体的中间(因为窗体是一个borderLayout)
}
public static void main(String[] args) {
Carculator carculator = new Carculator();
carculator.setVisible(true);
}
private String firstInput = null;
private String operator = null;
public void actionPerformed(ActionEvent e) {
//数字的监听
String clickStr = e.getActionCommand();
if (clickStr.equals("C")) {
input_text.setText("");
firstInput = null;
operator = null;
} else if (clickStr.equals("1/x")) {
this.input_text.setText(1.0 / Double.valueOf(this.input_text.getText())+"");
} else if (clickStr.equals("+/-")) {
if (this.input_text.getText().indexOf('+') != -1 || this.input_text.getText().indexOf('-') != -1) {
System.out.println(clickStr);
if (this.input_text.getText().indexOf('+') != -1) {
// System.out.println("+在里面");
this.input_text.setText(this.input_text.getText().substring(1));
this.input_text.setText("-" + input_text.getText());//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
} else if (this.input_text.getText().indexOf('-') != -1) {
// System.out.println("-在里面");
this.input_text.setText(this.input_text.getText().substring(1));
this.input_text.setText("+" + input_text.getText());//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else {
this.input_text.setText("+" + input_text.getText());//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else if (clickStr.equals("←")) {
if (!this.input_text.getText().isEmpty()) {
this.input_text.setText(this.input_text.getText().substring(0, this.input_text.getText().length() - 1));
}
} else if (".0123456789".indexOf(clickStr) != -1) {
if (".".equals(clickStr)) {
if (input_text.getText().indexOf('.') == -1) {
this.input_text.setText(input_text.getText() + clickStr);//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else {
this.input_text.setText(input_text.getText() + clickStr);//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else if (clickStr.matches("[\\+\\-*/]{1}")) {
// 存储+-*/
operator = clickStr;
// 存储前值
firstInput = this.input_text.getText();
this.input_text.setText("");
} else if (clickStr.equals("=")) {
Double a = Double.valueOf(firstInput);
Double b = Double.valueOf(this.input_text.getText());
Double result = null;
switch (operator) {
case "+":
result = a + b;
break;
case "-":
result = a - b;
break;
case "*":
result = a * b;
break;
case "/":
if (b != 0) {
result = a / b;
}
break;
}
this.input_text.setText(result.toString());
}
}
}
package A;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Carculator extends JFrame implements ActionListener {
/*****北面的控件******/
private JPanel jp_north = new JPanel();//设置了一个面板(面板没有设置布局是一个流式布局)
private JTextField input_text = new JTextField();
// private JButton c_Btn=new JButton("c");//北面的两个控件
/*****中间的控件******/
private JPanel jp_Center = new JPanel();
public Carculator() throws HeadlessException {
this.init();
this.addnorth();
this.addCenterButton();
}
//初始化的方法
public void init() {
this.setTitle("计算器");
this.setSize(600, 600);
this.setLayout(new BorderLayout());
this.setResizable(false);//窗体不可以随便拉
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//添加北面的控件
public void addnorth() {
this.input_text.setPreferredSize(new Dimension(280, 30));
jp_north.add(input_text);
this.add(jp_north, BorderLayout.NORTH);//把面板加载到窗体里面(北面)
}
//添加中间的按钮
public void addCenterButton() {
String[] string = {"1", "2", "3", "+", "C", "4", "5", "6", "-", "←", "7", "8", "9", "*", "1/x", "0", "+/-", ".", "/", "="};
this.jp_Center.setLayout(new GridLayout(4, 5));//网格布局4行5列
//加了二十个按钮到中间面板中
for (int i = 0; i < 20; i++) {
//字符串取出添加到了按钮中去
String text = string[i];
JButton btn = new JButton(text);
if (text.equals("+") ||
text.equals("-") ||
text.equals("*") ||
text.equals("/") ||
text.equals("C") ||
text.equals("←") ||
text.equals("1/x") ||
text.equals("+/-") ||
text.equals(".") ||
text.equals("=")) {
btn.setForeground(Color.red);
}
btn.addActionListener(this);//监听
jp_Center.add(btn);
}
this.add(jp_Center, BorderLayout.CENTER);//把中间面板加载到整个窗体的中间(因为窗体是一个borderLayout)
}
public static void main(String[] args) {
Carculator carculator = new Carculator();
carculator.setVisible(true);
}
private String firstInput = null;
private String operator = null;
public void actionPerformed(ActionEvent e) {
//数字的监听
String clickStr = e.getActionCommand();
if (clickStr.equals("C")) {
input_text.setText("");
firstInput = null;
operator = null;
} else if (clickStr.equals("1/x")) {
this.input_text.setText(1.0 / Double.valueOf(this.input_text.getText())+"");
} else if (clickStr.equals("+/-")) {
if (this.input_text.getText().indexOf('+') != -1 || this.input_text.getText().indexOf('-') != -1) {
System.out.println(clickStr);
if (this.input_text.getText().indexOf('+') != -1) {
// System.out.println("+在里面");
this.input_text.setText(this.input_text.getText().substring(1));
this.input_text.setText("-" + input_text.getText());//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
} else if (this.input_text.getText().indexOf('-') != -1) {
// System.out.println("-在里面");
this.input_text.setText(this.input_text.getText().substring(1));
this.input_text.setText("+" + input_text.getText());//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else {
this.input_text.setText("+" + input_text.getText());//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else if (clickStr.equals("←")) {
if (!this.input_text.getText().isEmpty()) {
this.input_text.setText(this.input_text.getText().substring(0, this.input_text.getText().length() - 1));
}
} else if (".0123456789".indexOf(clickStr) != -1) {
if (".".equals(clickStr)) {
if (input_text.getText().indexOf('.') == -1) {
this.input_text.setText(input_text.getText() + clickStr);//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else {
this.input_text.setText(input_text.getText() + clickStr);//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else if (clickStr.matches("[\\+\\-*/]{1}")) {
// 存储+-*/
operator = clickStr;
// 存储前值
firstInput = this.input_text.getText();
this.input_text.setText("");
} else if (clickStr.equals("=")) {
Double a = Double.valueOf(firstInput);
Double b = Double.valueOf(this.input_text.getText());
Double result = null;
switch (operator) {
case "+":
result = a + b;
break;
case "-":
result = a - b;
break;
case "*":
result = a * b;
break;
case "/":
if (b != 0) {
result = a / b;
}
break;
}
this.input_text.setText(result.toString());
}
}
}
package A;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Carculator extends JFrame implements ActionListener {
/*****北面的控件******/
private JPanel jp_north = new JPanel();//设置了一个面板(面板没有设置布局是一个流式布局)
private JTextField input_text = new JTextField();
// private JButton c_Btn=new JButton("c");//北面的两个控件
/*****中间的控件******/
private JPanel jp_Center = new JPanel();
public Carculator() throws HeadlessException {
this.init();
this.addnorth();
this.addCenterButton();
}
//初始化的方法
public void init() {
this.setTitle("计算器");
this.setSize(600, 600);
this.setLayout(new BorderLayout());
this.setResizable(false);//窗体不可以随便拉
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//添加北面的控件
public void addnorth() {
this.input_text.setPreferredSize(new Dimension(280, 30));
jp_north.add(input_text);
this.add(jp_north, BorderLayout.NORTH);//把面板加载到窗体里面(北面)
}
//添加中间的按钮
public void addCenterButton() {
String[] string = {"1", "2", "3", "+", "C", "4", "5", "6", "-", "←", "7", "8", "9", "*", "1/x", "0", "+/-", ".", "/", "="};
this.jp_Center.setLayout(new GridLayout(4, 5));//网格布局4行5列
//加了二十个按钮到中间面板中
for (int i = 0; i < 20; i++) {
//字符串取出添加到了按钮中去
String text = string[i];
JButton btn = new JButton(text);
if (text.equals("+") ||
text.equals("-") ||
text.equals("*") ||
text.equals("/") ||
text.equals("C") ||
text.equals("←") ||
text.equals("1/x") ||
text.equals("+/-") ||
text.equals(".") ||
text.equals("=")) {
btn.setForeground(Color.red);
}
btn.addActionListener(this);//监听
jp_Center.add(btn);
}
this.add(jp_Center, BorderLayout.CENTER);//把中间面板加载到整个窗体的中间(因为窗体是一个borderLayout)
}
public static void main(String[] args) {
Carculator carculator = new Carculator();
carculator.setVisible(true);
}
private String firstInput = null;
private String operator = null;
public void actionPerformed(ActionEvent e) {
//数字的监听
String clickStr = e.getActionCommand();
if (clickStr.equals("C")) {
input_text.setText("");
firstInput = null;
operator = null;
} else if (clickStr.equals("1/x")) {
this.input_text.setText(1.0 / Double.valueOf(this.input_text.getText())+"");
} else if (clickStr.equals("+/-")) {
if (this.input_text.getText().indexOf('+') != -1 || this.input_text.getText().indexOf('-') != -1) {
System.out.println(clickStr);
if (this.input_text.getText().indexOf('+') != -1) {
// System.out.println("+在里面");
this.input_text.setText(this.input_text.getText().substring(1));
this.input_text.setText("-" + input_text.getText());//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
} else if (this.input_text.getText().indexOf('-') != -1) {
// System.out.println("-在里面");
this.input_text.setText(this.input_text.getText().substring(1));
this.input_text.setText("+" + input_text.getText());//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else {
this.input_text.setText("+" + input_text.getText());//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else if (clickStr.equals("←")) {
if (!this.input_text.getText().isEmpty()) {
this.input_text.setText(this.input_text.getText().substring(0, this.input_text.getText().length() - 1));
}
} else if (".0123456789".indexOf(clickStr) != -1) {
if (".".equals(clickStr)) {
if (input_text.getText().indexOf('.') == -1) {
this.input_text.setText(input_text.getText() + clickStr);//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else {
this.input_text.setText(input_text.getText() + clickStr);//后输入的值显示在前面
this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示
}
} else if (clickStr.matches("[\\+\\-*/]{1}")) {
// 存储+-*/
operator = clickStr;
// 存储前值
firstInput = this.input_text.getText();
this.input_text.setText("");
} else if (clickStr.equals("=")) {
Double a = Double.valueOf(firstInput);
Double b = Double.valueOf(this.input_text.getText());
Double result = null;
switch (operator) {
case "+":
result = a + b;
break;
case "-":
result = a - b;
break;
case "*":
result = a * b;
break;
case "/":
if (b != 0) {
result = a / b;
}
break;
}
this.input_text.setText(result.toString());
}
}
}
根据代码帮我画一个uml类图