Java swing编程例子1—计算器
Java swing编程练习1--计算器
方法比较笨,希望大佬提供简约版
package swingtest;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* 实现计算功能
* @author Administrator
*
*/
public class Calculator {
public static void main(String[] args) {
JFrame frame = new JFrame("Calculator Example");
frame.setSize(480, 430);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
// 添加面板
frame.add(panel);
CalculatorTest(panel);
// 设置界面可见
frame.setVisible(true);
}
private static void CalculatorTest(JPanel panel) {
panel.setLayout(null);
/*
* 创建文本域用于操作数1
*/
JTextField Text = new JTextField(40);
Text.setBounds(40,40,60,40);
panel.add(Text);
//用于创建符号
JLabel textLabel = new JLabel("");
textLabel.setBounds(120,40,60,40);
panel.add(textLabel);
//操作数2
JTextField Text1 = new JTextField(40);
Text1.setBounds(200,40,60,40);
panel.add(Text1);
//运算结果
JTextField TextEnd = new JTextField(20);
TextEnd.setBounds(280,40,60,40);
panel.add(TextEnd);
/*
*这个类似用于输入的文本域
* 但是输入的信息会以点号代替,用于包含密码的安全性
*/
// 创建加按钮
JButton addButton = new JButton("+");
addButton.setBounds(40, 100, 60, 35);
panel.add(addButton);
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String addend = getButton(addButton);
textLabel.setText(addend);
}
});
//创建减按钮
JButton subButton = new JButton("-");
subButton.setBounds(40, 170, 60, 35);
panel.add(subButton);
subButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String addend = getButton(subButton);
textLabel.setText(addend);
}
});
//创建乘按钮
JButton rideButton = new JButton("x");
rideButton.setBounds(40, 240, 60, 35);
panel.add(rideButton);
rideButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String addend = getButton(rideButton);
textLabel.setText(addend);
}
});
//创建除按钮
JButton divideButton = new JButton("÷");
divideButton.setBounds(40, 310, 60, 35);
panel.add(divideButton);
divideButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String addend = getButton(divideButton);
textLabel.setText(addend);
}
});
//复位键
JButton ACButton = new JButton("AC");
ACButton.setBounds(360, 40, 60, 305);
panel.add(ACButton);
ACButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Text.setText(null);
textLabel.setText("");
Text1.setText(null);
TextEnd.setText(null);
}
});
//数字键盘
//1-3
JButton Button1 = new JButton("1");
Button1.setBounds(120, 240, 60, 35);
panel.add(Button1);
Button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button1);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button1);
Text1.setText(text);
}
}
});
JButton Button2 = new JButton("2");
Button2.setBounds(200, 240, 60, 35);
panel.add(Button2);
Button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button2);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button2);
Text1.setText(text);
}
}
});
JButton Button3 = new JButton("3");
Button3.setBounds(280, 240, 60, 35);
panel.add(Button3);
Button3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button3);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button3);
Text1.setText(text);
}
}
});
//4-6
JButton Button4 = new JButton("4");
Button4.setBounds(120, 170, 60, 35);
panel.add(Button4);
Button4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button4);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button4);
Text1.setText(text);
}
}
});
JButton Button5 = new JButton("5");
Button5.setBounds(200, 170, 60, 35);
panel.add(Button5);
Button5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button5);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button5);
Text1.setText(text);
}
}
});
JButton Button6 = new JButton("6");
Button6.setBounds(280, 170, 60, 35);
panel.add(Button6);
Button6.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button6);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button6);
Text1.setText(text);
}
}
});
//7-9
JButton Button7 = new JButton("7");
Button7.setBounds(120, 100, 60, 35);
panel.add(Button7);
Button7.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button7);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button7);
Text1.setText(text);
}
}
});
JButton Button8 = new JButton("8");
Button8.setBounds(200, 100, 60, 35);
panel.add(Button8);
Button8.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button8);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button8);
Text1.setText(text);
}
}
});
JButton Button9 = new JButton("9");
Button9.setBounds(280, 100, 60, 35);
panel.add(Button9);
Button9.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button9);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button9);
Text1.setText(text);
}
}
});
//.0=
JButton Button = new JButton(".");
Button.setBounds(120, 310, 60, 35);
panel.add(Button);
Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button);
Text1.setText(text);
}
}
});
JButton Button0 = new JButton("0");
Button0.setBounds(200, 310, 60, 35);
panel.add(Button0);
Button0.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = null;
if (getTextl(textLabel)== "") {
text = getText(Text)+getButton(Button0);
Text.setText(text);
}else if (getTextl(textLabel)!= "") {
text = getText(Text1)+getButton(Button0);
Text1.setText(text);
}
}
});
JButton Buttonn = new JButton("=");
Buttonn.setBounds(280, 310, 60, 35);
panel.add(Buttonn);
Buttonn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = methodCalculator(Text,Text1,textLabel)+"";
TextEnd.setText(text);
}
});
}
//获取文本框的类容
public static String getText(JTextField Text){
//执行Add方法
return Text.getText();
}
//获取标签值
public static String getTextl(JLabel textLabel){
//执行Add方法
return textLabel.getText();
}
//获取按键数字
public static String getButton(JButton Button){
//执行Add方法
return Button.getText();
}
//计算
public static double methodCalculator(JTextField Text,JTextField Text1,JLabel textLabel){
//执行Add方法
double num1 = Double.parseDouble(getText(Text));
double num2 = Double.parseDouble(getText(Text1));
if (textLabel.getText().equals("+")) {
return (num1+num2);
}else if (textLabel.getText().equals("-")) {
return (num1-num2);
}else if (textLabel.getText().equals("x")) {
return (num1*num2);
}else if (textLabel.getText().equals("÷")) {
if (num2 == 0) {
return 0;
}else {
return (num1/num2);
}
}else {
return 0;
}
}
}
运行效果图