可视化计算器--改进版--Java可视化
来源:互联网 发布:淘宝卖家首页悬浮红包 编辑:程序博客网 时间:2024/05/11 20:37
package Works_JavaLesson;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator {
/**
* @param Caculator
* @author CHENJIAN
*/
public static void main(String[] args) {
CalculatorFrame frame = new CalculatorFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class CalculatorFrame extends JFrame{
public CalculatorFrame(){
setTitle("Calculator");
CalculatorPanel panel = new CalculatorPanel();
add(panel);
pack();
}
}
class CalculatorPanel extends JPanel{
public CalculatorPanel(){
setLayout(new BorderLayout());
result = 0;
display = new JLabel("0", JLabel.RIGHT);
start = true;
panel_1 = new JPanel();
panel_3 = new JPanel();
lastCommand = "=";
display.setEnabled(true);
panel_3.add(display);
add(panel_3, BorderLayout.NORTH);
ActionListener insert = new InsertAction();
ActionListener command = new CommandAction();
panel_1.setLayout(new GridLayout(5, 4));
add(panel_1, BorderLayout.CENTER);
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);
addButton("←", insert);
addButton("+/-", command);
addButton("=", command);
addButton("AC", insert);
}
public void addButton(String btnname, ActionListener listener){
JButton btn = new JButton(btnname);
btn.addActionListener(listener);
panel_1.add(btn);
}
private class InsertAction implements ActionListener{
public void actionPerformed(ActionEvent event){
String input = event.getActionCommand();
if(start){
display.setText(input);
start = false;
}
else if(input.equals("←")){
String str = display.getText();
if(str.length() > 0){
display.setText(str.substring(0, str.length()-1));
}
else{
display.setText("0");
}
}
else if(input.equals("AC")){
start = true;
display.setText("0");
lastCommand = "=";
}
else{
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("-");
start = false;
}
else{
lastCommand = command;
}
}
else{
Calculate(Double.parseDouble(display.getText()));
lastCommand = command;
start = true;
}
}
}
public void Calculate(double d){
if(lastCommand.equals("+")){
result += d;
}
else if(lastCommand.equals("-")){
result -= d;
}
else if(lastCommand.equals("*")){
result *= d;
}
else if(lastCommand.equals("/")){
result /= d;
}
else if(lastCommand.equals("%")){
result %= d;
}
else if(lastCommand.equals("=")){
result = d;
}
display.setText("" + result);
}
private double result;
private JLabel display;
private boolean start;
private JPanel panel_1;
private JPanel panel_3;
private String lastCommand;
}
2009-05-28 09:53:09
- 可视化计算器--改进版--Java可视化
- Java可视化计算器
- 可视化计算器
- 简单的计算器-Java-可视化
- 用java可视化编程实现计算器
- c++的可视化计算器
- JAVA 可视化
- 可视化
- 可视化
- 可视化
- 【Java学习笔记】42:改进JFrame可视化棋盘覆盖
- Deep Learning---神经网络可视化netcope工具改进版
- 可视化编程小作业之小小改进
- Java可视化象棋!
- Java可视化界面设计
- 体验java可视化开发
- java中的可视化界面
- java控制台可视化日历
- 南通SEO给家乡带来了什么?
- Google的九条创新原则
- 一个可以搜索Jar包的网站
- WordShow-java-swing
- 简单的计算器-Java-可视化
- 可视化计算器--改进版--Java可视化
- NetBeans 时事通讯(刊号 # 57 - May 27, 2009)
- 课程 Java Web程序设计 - 怀旧版
- 快乐SNS遭遇行业潜规则
- freemarker的第一个例子
- 课程 Java Web程序设计01: Getting Start
- Winforms: 在TreeView中应用Vista Explorer的新风格
- C#与JAVASCRIPT函数的相互调用
- 将表中所有字段都不为空的记录选出