前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算器界面布局JAVA_用JAVA写的一个简单的图形界面计算器

计算器界面布局JAVA_用JAVA写的一个简单的图形界面计算器

作者头像
用户7886150
修改2021-04-29 10:26:29
1.4K0
修改2021-04-29 10:26:29
举报
文章被收录于专栏:bit哲学院

参考链接: Java程序使用switch ... case创建一个简单的计算器

/*** Created by YunFeng on 2014/12/6 0009.

 * Student Number:

 * Teacher:Yongfeng Huang

 * University:DHU

 *Java's homework of No,7 weekend;*/

 import java.awt.*;import javax.swing.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;public classICalculator {public static voidmain(String args[]){

 WinGrid ICalc= newWinGrid();

 ICalc.setTitle("计算器1.0");//程序标题

 }

 }class WinGrid extendsJFrame {

 JPanel calc, screen;//创建两个面板,放置按键和显示器

 JButton[] buttons = new JButton[16];//创建16个按键

 JButton clear = new JButton("CE");//创建清除键

 JTextField screen_txt = new JTextField("0");//创建显示器

 String[] str = {"7", "8", "9", "+", "4", "5", "6","-", "1", "2", "3", "*", "0", ".", "=", "/"};//计算器的按钮

 double result = 0;//结果

 boolean IsClick = false;//是否点击过

 char operator = '=';//操作符

 boolean IsPoint = false;//输入的是否是小数点

 NumberListener numberListener= new NumberListener();//创建一个数字监视器

 OperatorListener operatorListener = new OperatorListener();//创建一个操作符监视器

 ClearListener clearListener = new ClearListener();//创建一个清零操作监视器

 WinGrid() {

 calc= new JPanel(new GridLayout(4, 4));

 screen= new JPanel(newBorderLayout());/*以上为初始化两个面板布局*/

 for (int i = 0; i < 16; i++) {

 buttons[i]= newJButton(str[i]);if (i == 3 || i == 7 || i == 11 || i == 14 || i == 15) {

 buttons[i].addActionListener(operatorListener);//操作符注册操作符的监视器

 } elsebuttons[i].addActionListener(numberListener);//数字及小数点注册数字的监视器

 calc.add(buttons[i]);

 }//将按钮添加到操作面板

 clear.addActionListener(clearListener);//注册清零监视器

 screen.add(screen_txt, BorderLayout.CENTER);//将显示器添加到显示区域

 screen.add(clear, BorderLayout.EAST);//将清零键添加到显示器右边

 add(screen, BorderLayout.NORTH);//将显示器添加到BorderLayout的北方区域,即上方

 add(calc, BorderLayout.CENTER);//将操作区添加到中央区域

 setBounds(450, 150, 240, 240);//设置计算器大小,位置

 setVisible(true);//设置可见性

 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置退出方式

 validate();//使设置生效(根据课本232页)

 }class ClearListener implements ActionListener {//清零计数器的实现

 public voidactionPerformed(ActionEvent e) {

 screen_txt.setText("");

 }

 }class NumberListener implements ActionListener {//数字监视器的实现,用于处理数字按钮的监听

 public voidactionPerformed(ActionEvent e) {if (!IsClick) {//没有点击过的操作

 screen_txt.setText("");

 IsClick= true;

 }

 String s= screen_txt.getText();//读取显示器的内容

 s += e.getActionCommand();//显示器内容+鼠标点击的内容

 screen_txt.setText(s);//显示器显示s

 }

 }class OperatorListener implements ActionListener {//操作符监听的实现,用于处理点击操作符的事件

 public voidactionPerformed(ActionEvent e) {if (!IsClick) return;//如果数字没有被点击过直接点击操作符,返回

 String s = screen_txt.getText();//读取显示器内容

 double num = Double.parseDouble(s);//转换成数字

 IsClick = false;//点击过操作符后将不能被再次点击操作符

 switch (operator) {//处理操作符的运算

 case '+': {

 result= num +result;break;

 }case '-': {

 result= result -num;break;

 }case '*': {

 result*=num ;break;

 }case '/': {if (num == 0) result = 0;elseresult/=num;break;

 }case '=': {

 result=num;break;

 }

 }

 screen_txt.setText(String.valueOf( result));//显示器显示结果

 String op = e.getActionCommand();//监听读取操作符

 operator = op.charAt(0);//设置操作符

 }

 }

 }

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档