import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;//导入包
public class simple_Calculator extends JFrame {
JFrame jfr = new JFrame("简易计算器");//顶层容器
//6行,6个面板组件
JPanel jp1=new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
JPanel jp4 = new JPanel();
JPanel jp5 = new JPanel();
JPanel jp6 = new JPanel();
//4个JLablel组件
JLabel jl1=new JLabel("简易计算器");
JLabel jl2=new JLabel("运算数一");
JLabel jl3=new JLabel("运算数二");
JLabel jl4=new JLabel("运算结果");
JLabel space = new JLabel(" ".repeat(10));
//3个文本框
JTextField jtf1 = new JTextField(10);
JTextField jtf2 = new JTextField(10);
JTextField jtf3 = new JTextField(10);
//3个按钮
JButton jb1 = new JButton("相加");
JButton jb2 = new JButton("相减");
JButton jb3 = new JButton("全部清零");
public static void main(String[] args) {
simple_Calculator window=new simple_Calculator();
}
public simple_Calculator() {
//添加组件到面板
jp1.add(jl1);
jp2.add(jl2);
jp2.add(jtf1);
jp3.add(jl3);
jp3.add(jtf2);
jp4.add(jl4);
jp4.add(jtf3);
jp5.add(jb1);
jp5.add(space);
jp5.add(jb2);
jp6.add(jb3);
//添加面板到窗体
jfr.add(jp1);
jfr.add(jp2);
jfr.add(jp3);
jfr.add(jp4);
jfr.add(jp5);
jfr.add(jp6);
//特殊设置
jtf3.setEnabled(false);//运算结果不能变动
//设置contentpane布局
jfr.setLayout(new GridLayout(6,1));
jfr.setTitle("简易计算器");
jfr.setSize(300,380);
jfr.setResizable(false);
jfr.setVisible(true);
// JFrame在屏幕居中
jfr.setLocationRelativeTo(null);
jfr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//添加监听
jb3.addActionListener(new my_ActionListener());
jb1.addActionListener(new my_ActionListener());
jb2.addActionListener(new my_ActionListener());
// jb1.addActionListener(new sum_ActionListener());
// jb2.addActionListener(new sub_ActionListener());
// jb3.addActionListener(new zoro_ActionListener());
}
// //创建相加,相减,清零的三个监听器
// public class sum_ActionListener implements ActionListener {
// @Override
// public void actionPerformed(ActionEvent e) {
// String a=jtf1.getText();
// float num_a = Float.parseFloat(a);
// String b=jtf2.getText();
// float num_b = Float.parseFloat(b);
//
// float num_c=num_a+num_b;
// String c = Float.toString(num_c);
//
// jtf3.setText(c);
// }
// }
// public class sub_ActionListener implements ActionListener {
// @Override
// public void actionPerformed(ActionEvent e) {
// String a=jtf1.getText();
// float num_a = Float.parseFloat(a);
// String b=jtf2.getText();
// float num_b = Float.parseFloat(b);
//
// float num_c=num_a-num_b;
// String c = Float.toString(num_c);
//
// jtf3.setText(c);
// }
// }
// public class zoro_ActionListener implements ActionListener {
// @Override
// public void actionPerformed(ActionEvent e) {
// jtf1.setText("");
// jtf2.setText("");
// jtf3.setText("");
// }
// }
public class my_ActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jb3) {//获取事假源并判断
jtf1.setText("");//清零
jtf2.setText("");
jtf3.setText("");
} else if ((e.getSource() == jb1)) {//相加
if(erro())
{
jtf1.setText("");//清零
jtf2.setText("");
jtf3.setText("");
return;
}
String a=jtf1.getText();
float num_a = Float.parseFloat(a);
String b=jtf2.getText();
float num_b = Float.parseFloat(b);
float num_c=num_a+num_b;
String c = Float.toString(num_c);
jtf3.setText(c);
}
else if ((e.getSource() == jb2)) {//相加
if(erro())
{
jtf1.setText("");//清零
jtf2.setText("");
jtf3.setText("");
return;
}
String a=jtf1.getText();
float num_a = Float.parseFloat(a);
String b=jtf2.getText();
float num_b = Float.parseFloat(b);
float num_c=num_a-num_b;
String c = Float.toString(num_c);
jtf3.setText(c);
}
}
public boolean erro() {
String a=jtf1.getText();
String b=jtf2.getText();
int lena = a.length();
int lenb = b.length();
int suma=0;
int sumb=0;
if (a.equals("") || b.equals("")) {//判断数据是否完整
JOptionPane.showMessageDialog(null, "数据未输入完整","erro",0);
return true;
}
for (int i = 0; i < lena; i++) {//判断运算数一的非法字符,小数点个数
if ((a.charAt(i) < '0'||a.charAt(i) > '9')&& a.charAt(i)!='.') {
JOptionPane.showMessageDialog(null, "运算数一含有非法字符","erro",0);
return true;
}
if (a.charAt(i)=='.') {
suma++;
}
if (suma > 1) {
JOptionPane.showMessageDialog(null, "运算数一小数点个数不符合规范","erro",0);
return true;
}
}
for (int i = 0; i < lenb; i++) {//判断运算数二的非法字符,小数点个数
if ((b.charAt(i) < '0'||b.charAt(i) > '9')&& b.charAt(i)!='.') {
JOptionPane.showMessageDialog(null, "运算数二含有非法字符","erro",0);
return true;
}
if (b.charAt(i)=='.') {
sumb++;
}
if (sumb > 1) {
JOptionPane.showMessageDialog(null, "运算数二小数点个数不符合规范","erro",0);
return true;
}
}
//判断小数点位置
if( a.charAt((a.length()-1)) == '.' || a.charAt(0) == '.' )
{
JOptionPane.showMessageDialog(null, "运算数一的小数点位置有误","erro",0);
return true;
}
if( b.charAt((b.length()-1)) == '.' || b.charAt(0) == '.' )
{
JOptionPane.showMessageDialog(null, "运算数二的小数点位置有误","erro",0);
return true;
}
return false;
}
}
}
08-11
1677
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交