简单工厂模式 java 计算器_基于简单工厂模式的计算器程序

这个博客展示了如何使用Java创建一个简单的计算器程序,利用简单工厂模式处理加、减、乘、除四种运算。计算器界面包含两个输入字段,一个结果显示字段,以及四个运算按钮。当用户点击计算按钮时,程序会根据选择的运算符调用相应的方法进行计算,并将结果显示在文本框中。
摘要由CSDN通过智能技术生成

importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjavax.swing.ButtonGroup;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JRadioButton;importjavax.swing.JTextField;

@SuppressWarnings("serial")public class CalculateFrame extendsJFrame{privateJTextField textData1, textData2, textResult;privateJLabel labelNum1, labelNum2, labelResult;privateJRadioButton radioAdd, radioSub, radioMul, radioDiv;privateJButton btnCalculate;privateOperation oper;//进行运算的两个数字和结果

privateString data1, data2, operation;private doubleresultNum;publicCalculateFrame(){//设置窗口基本属性

this.setTitle("简单计算器");this.setSize(300, 200);//本机分辨率为1366*768

this.setLocation(1366/2-300/2, 768/2-200/2);//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.addWindowListener(newWindowAdapter(){

@Overridepublic voidwindowClosing(WindowEvent e) {

setVisible (false);

System.exit(0);

}

});

initView();

initLayout();this.setVisible(true);//显示窗口

btnCalculate.addActionListener(newButtonListener());

}//设置一些功能区域

public voidinitView() {

textData1= newJTextField();

textData2= newJTextField();

textResult= newJTextField();

textResult.setEnabled(false);

labelNum1= new JLabel("第一个数:");

labelNum2= new JLabel("第二个数:");

labelResult= new JLabel("结果:");

btnCalculate= new JButton("计算");

radioAdd= new JRadioButton("+");

radioSub= new JRadioButton("-");

radioMul= new JRadioButton("*");

radioDiv= new JRadioButton("/");

}//将控件加入到布局中

public voidinitLayout() {

JPanel p1= new JPanel(new GridLayout(1,2));

p1.add(labelNum1);

p1.add(textData1);

JPanel p2= new JPanel(new GridLayout(1,4));

p2.add(radioAdd);

p2.add(radioSub);

p2.add(radioMul);

p2.add(radioDiv);

JPanel p3= new JPanel(new GridLayout(1,2));

p3.add(labelNum2);

p3.add(textData2);

JPanel p4= new JPanel(new GridLayout(1,2));

p4.add(labelResult);

p4.add(textResult);

JPanel p5= new JPanel(new GridLayout(1,1));

p5.add(btnCalculate);this.setLayout(new GridLayout(5,1));this.add(p1);this.add(p2);this.add(p3);this.add(p4);this.add(p5);

ButtonGroup group= newButtonGroup();

group.add(radioAdd);

group.add(radioSub);

group.add(radioMul);

group.add(radioDiv);

}class ButtonListener implementsActionListener{//从程序中读入数据

public voidactionPerformed(ActionEvent e) {

data1=textData1.getText();

data2=textData2.getText();

operation= "";if(radioAdd.isSelected()) operation =radioAdd.getText();else if(radioSub.isSelected()) operation =radioSub.getText();else if(radioMul.isSelected()) operation =radioMul.getText();else if(radioDiv.isSelected()) operation =radioDiv.getText();//将运算符号传入工厂中进行实例化

oper = OperationFactory.createOperate(operation.charAt(0));

oper.numberA=Double.parseDouble(data1);

oper.numberB=Double.parseDouble(data2);

resultNum=oper.getResult();

textResult.setText(String.valueOf(resultNum));

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值