资源简介

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-frame.html
     文件         708  2015-05-24 20:45  Calculator\doc\allclasses-noframe.html
     目录           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-frame.html
     文件        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个文件信息

评论

共有 条评论