Java 计算器实现
来源:互联网 发布:淘宝怎么分享不了 编辑:程序博客网 时间:2024/06/06 14:06
最近在看JAVA核心技术这本书,里面的一些例子也跟着编写运行了一些,跟着编写计算器这个的时候,发现给了panel部分的实现,frame部分没有给出,所以自己按照前面讲的完善了一下
实现的panel部分
package calculator;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class CalculatorPanel extends JPanel{ private JButton display; private double result; private String lastCommand; private boolean start; private JPanel panel; public CalculatorPanel() { setLayout(new BorderLayout()); result=0; lastCommand="="; start=true; display=new JButton("0"); display.setEnabled(false); add(display,BorderLayout.NORTH); ActionListener insert=new InsertAction(); ActionListener command=new CommandAction(); //add the button in a 4*4 grid panel=new JPanel(); panel.setLayout(new GridLayout(4,4)); addButton("7",insert); addButton("8",insert); addButton("9",insert); addButton("/",command); addButton("4",insert); addButton("5",insert); addButton("6",insert); addButton("*",command); addButton("1",insert); addButton("2",insert); addButton("3",insert); addButton("-",command); addButton("0",insert); addButton(".",insert); addButton("=",command); addButton("+",command); add(panel,BorderLayout.CENTER); } private void addButton(String label,ActionListener listener) { JButton button= new JButton(label); button.addActionListener(listener); panel.add(button); } private class InsertAction implements ActionListener { public void actionPerformed(ActionEvent event) { String input=event.getActionCommand(); if(start) { display.setText(""); start=false; } display.setText(display.getText()+input); } } private class CommandAction implements ActionListener { public void actionPerformed(ActionEvent event) { String command=event.getActionCommand(); if(start) { if(command.equals("-")) { display.setText(command); start=false; } else lastCommand=command; } else { calculate(Double.parseDouble(display.getText())); lastCommand=command; start=true; } } } public void calculate(double x) { if(lastCommand.equals("+")) result+=x; else if(lastCommand.equals("-")) result-=x; else if(lastCommand.equals("*")) result*=x; else if(lastCommand.equals("/")) result/=x; else if(lastCommand.equals("=")) result=x; display.setText(""+result); }}
main函数部分
package main;import calculator.*;import java.awt.*;import javax.swing.*;public class MainPart { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { JFrame frame=new calFrame(); frame.setTitle("Cal"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); }}class calFrame extends JFrame{ public calFrame() { CalculatorPanel panel=new CalculatorPanel(); add(panel); pack(); }}
Java核心技术(第9版)
0 0
- java实现计算器
- java实现的计算器
- JAVA实现简易计算器
- Java实现表达式计算器
- Java实现简单计算器
- java实现简易计算器
- JAVA计算器算法实现
- JAVA 实现预产期计算器
- 【Java】简单计算器实现
- JAVA实现简单计算器
- java实现阶层计算器
- java实现简易计算器
- java实现计算器
- java实现计算器
- java实现计算器
- java实现简单计算器
- Java实现简单计算器
- Java 计算器实现
- 数据结构实验之栈八:栈的基本操作
- matlab读取csv文件
- 回顾过去的一年
- js折叠列表的小例子
- 学习Caffe(二)使用Caffe
- Java 计算器实现
- 暑假不想学习...喝碗鸡汤找点动力
- abiFilters
- Palindromes
- 时间格式类型互转之 字符串、日历、时间数据
- .net用BouncyCastle进行签名&加解密
- 加密与签名
- table合并单元格colspan和rowspan
- javax.mail.AuthenticationFailedException: 535 Error: authentication failed的解决办法