资源简介
Java 计算器 采用gridbaglayout布局实现的界面布局
代码片段和文件信息
package com.ares.util;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* Calculator类,实现计算器界面版
* @author Ares
* @version 1.0
* @see GBC.java
*/
public class Calculator implements ActionListener{
/**用来标识所有按键*/
final String[] KEYS = { “CE“ “C“ “←“ “÷“ “7“ “8“ “9“ “ד “4““5“ “6“ “-“ “1“ “2“ “3“ “+“ “0“ “.“ “=“ };
/**将所有按钮用Button数组实现*/
JButton[] keys = new JButton[KEYS.length];
/**用来显示结果区域*/
JTextField resultText = new JTextField(“0“);
/**标志按的是表达式第一个数字,还是运算符后的第一个数字*/
private boolean firstDigit = true;
/**中间结果*/
private double resultNum = 0.0;
/**当前运算的运算符 */
private String operator = “=“;
/**判断操作是否合法*/
private boolean operateValidFlag = true;
/**
* 向面板中添加组件
* @param pane 用来添加组件的面板
*/
public void addComponentsToPane(Container pane) {
GridBagLayout layout = new GridBagLayout();
pane.setLayout(layout);
resultText.setFont(new Font(“Century Schoolbook“ Font.PLAIN 14));
resultText.setEditable(false);
resultText.setHorizontalAlignment(SwingConstants.RIGHT);
pane.add(resultTextnew GBC(0 0 4 1).setIpad(400 50).setWeight(0.5 0.5).setFill(GridBagConstraints.BOTH));
for (int i = 0; i < keys.length; i++) {
keys[i] = new JButton(KEYS[i]);
if(i == keys.length-3){
pane.add(keys[i]new GBC(i % 4 i / 4 + 121).setIpad(0 12).setInsets(1).setFill(GridBagConstraints.BOTH).setWeight(0.5 0.5));
}else if (i == keys.length-2 || i == keys.length-1) {
pane.add(keys[i]new GBC(i % 4+1 i / 4 + 1).setIpad(0 12).setInsets(1).setFill(GridBagConstraints.BOTH).setWeight(0.5 0.5));
}else {
pane.add(keys[i] new GBC(i % 4 i / 4 + 1).setIpad(0 12).setInsets(1).setFill(GridBagConstraints.BOTH).setWeight(0.5 0.5));
}
}
for (int i = 0; i < KEYS.length; i++) {
keys[i].addActionListener(this);
}
}
/**
* 创建和显示界面
*/
public void createAndShowGUI() {
Jframe frame = new Jframe(“Calculator“);
frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
addComponentsToPane(frame.getContentPane());
frame.pack();
frame.setVisible(true);
}
/**
* 执行点击按钮出发的动作
* @override
* @see java.awt.event.actionPerformed
*/
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
if(label.equals(KEYS[0])){
resultText.setText(“0“);
}else if (label.equals(KEYS[1])) {
handleC();
}else if (label.equals(KEYS[2])) {
handleBackspace();
}else if (“0123456789.“.indexOf(label) >= 0) {
handleNumber(label);
}else{
handleOperator(label);
}
}
/**
* 处理撤销建
*/
private void handleBackspace() {
String text = resultText.getText();
int i = text.length();
if (i > 0) {
text = text.substring(0 i - 1);
if (text.length() == 0) {
resultText.setText(“0“);
firstDigit = true;
operator
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-05-24 15:04 Calculator\
文件 232 2015-05-19 14:29 Calculator\.classpath
文件 386 2015-05-19 14:29 Calculator\.project
目录 0 2015-06-12 11:13 Calculator\bin\
目录 0 2015-06-12 11:13 Calculator\bin\com\
目录 0 2015-06-12 11:13 Calculator\bin\com\ares\
目录 0 2015-06-25 21:44 Calculator\bin\com\ares\util\
文件 554 2015-06-12 11:13 Calculator\bin\com\ares\util\Calculator$1.class
文件 5300 2015-06-12 11:13 Calculator\bin\com\ares\util\Calculator.class
文件 1499 2015-06-12 11:13 Calculator\bin\com\ares\util\GBC.class
目录 0 2015-05-24 15:04 Calculator\doc\
文件 748 2015-05-24 20:45 Calculator\doc\allclasses-fr
文件 708 2015-05-24 20:45 Calculator\doc\allclasses-nofr
目录 0 2015-05-24 15:04 Calculator\doc\com\
目录 0 2015-05-24 15:04 Calculator\doc\com\ares\
目录 0 2015-05-24 15:04 Calculator\doc\com\ares\util\
文件 11422 2015-05-24 20:45 Calculator\doc\com\ares\util\Calculator.html
文件 16905 2015-05-24 20:45 Calculator\doc\com\ares\util\GBC.html
目录 0 2015-05-24 15:04 Calculator\doc\com\ares\util\class-use\
文件 4110 2015-05-24 20:45 Calculator\doc\com\ares\util\class-use\Calculator.html
文件 7453 2015-05-24 20:45 Calculator\doc\com\ares\util\class-use\GBC.html
文件 865 2015-05-24 20:45 Calculator\doc\com\ares\util\package-fr
文件 4704 2015-05-24 20:45 Calculator\doc\com\ares\util\package-summary.html
文件 4310 2015-05-24 20:45 Calculator\doc\com\ares\util\package-tree.html
文件 4602 2015-05-24 20:45 Calculator\doc\com\ares\util\package-use.html
文件 3586 2015-05-24 20:45 Calculator\doc\constant-values.html
文件 3574 2015-05-24 20:45 Calculator\doc\deprecated-list.html
文件 7208 2015-05-24 20:45 Calculator\doc\help-doc.html
目录 0 2015-05-24 15:04 Calculator\doc\index-files\
文件 4655 2015-05-24 20:45 Calculator\doc\index-files\index-1.html
文件 4972 2015-05-24 20:45 Calculator\doc\index-files\index-2.html
............此处省略15个文件信息
- 上一篇:JAVA简单记事本程序设计实验报告(带源码)
- 下一篇:android 注入so代码
相关资源
- JAVA简单记事本程序设计实验报告(带
- 自己设计的贪吃蛇游戏
- 动物换位游戏
- 基于Java+Web技术开发的BBS论坛系统源代
- javax.mail.jar 亲测jdk1.6工程下可用
- jstl.jar和standard.jar 报错Can not find \“
- JAVA推箱子源代码
- java 时间转换成精确的生辰八字
- java电影院售票系统
- 操作系统课设 两道批处理系统的两级
- Time计时器
- 操作系统课程设计 Java实现的多用户文
-
javax.xm
l.bind_2.1.9.v201005080401.jar - 北大青鸟项目案例 宠物商店
- 员工管理系统JAVA开发毕业设计含开发
- Java 接口
- java 绘制演示sin动态变化图形
- JAVAweb大作业
- java-onvif-nety4
- javax.jar 包免费
- Java保龄球游戏
- Java+Jsp+MySql微博开发
- niit java考试题目
- usb4java最新版1.3.0
- 小程序微信支付java后台
- javaee图书管理
- javabean+servlet+jsp+mysql实现人事管理增删
- Java开发实战宝典光盘及源码.txt
- UDP协议实现对等通讯Java+RSA加密解密传
- java开发,30个常用工具类总结,全部
评论
共有 条评论