资源简介
实现对亲戚关系的计算,可以在data.txt自增自减关系链。
代码片段和文件信息
package com.xie.rel;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Hashtable;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import com.xie.rel.*;
class ButtonListener implements ActionListener {
// 分割字符串的对象
StringSubClass ss = new StringSubClass();
/**
* 记录按钮的一系列路径信息方便回退
*/
ArrayList al = new ArrayList();
/**
* 记录一系列计算出来的关系避免回退时的二次计算
*/
ArrayList res = new ArrayList();
public void actionPerformed(ActionEvent e) {
/**
* 将按钮与称呼对应起来以便于显示在计算板上
*/
Hashtable rec = new Hashtable();
String[] a = { “父“ “母“ “兄“ “弟“ “姐“ “妹“ “夫“ “妻“ “儿“ “女“ };
String[] b = { “爸爸“ “妈妈“ “哥哥“ “弟弟“ “姐姐“ “妹妹“ “丈夫“ “妻子“ “儿子“ “女儿“ };
for (int i = 0; i < a.length; i++) {
rec.put(a[i] b[i]);
}
/**
* 当前按钮上的字
*/
String which = ((JButton) e.getSource()).getText();
/**
* 按钮对应事件
*/
if (which.equals(“AC“)) {
/**
* 将现有身份重置
*/
RelativeCalculater.now = “你“;
RelativeCalculater.isOlder = true;
RelativeCalculater.olderButton.setBackground(new Color(84 110 122));
/**
* 清空列表
*/
al.clear();
res.clear();
/**
* 将显示区域清空
*/
RelativeCalculater.inpuTextArea.setText(““);
RelativeCalculater.resultTextArea.setText(““);
} else if (which.equals(“=“)) {
/**
* 按下等于按钮时当RelativeCalculater.now=<哥哥><弟弟>选择年长还是年幼(默认年长)
*/
if (RelativeCalculater.now.charAt(0) == ‘<‘) {
String[] oldChooseString = ss.subStringAll(RelativeCalculater.now “<“ “>“);
RelativeCalculater.now = RelativeCalculater.isOlder ? oldChooseString[0] : oldChooseString[1];
RelativeCalculater.inpuTextArea.setText(
RelativeCalculater.inpuTextArea.getText() + (RelativeCalculater.isOlder ? “(年长)“ : “(年轻)“));
}
/**
* 将 小 按钮的设置恢复初始状态
*/
RelativeCalculater.olderButton.setBackground(new Color(84 110 122));
RelativeCalculater.isOlder = true;
/**
* 将结果显示在面板resultTextArea上
*/
RelativeCalculater.resultTextArea.setText(RelativeCalculater.now);
} else if (which.equals(“小“)) {
RelativeCalculater.isOlder = false;
/**
* 将 小 的背景色置回原色
*/
RelativeCalculater.olderButton.setBackground(new Color(84 110 122));
} else if (which.equals(“←“)) {
// 若输入区域已经为空那么就重置一次计算器
if (RelativeCalculater.inpuTextArea.getText().equals(null)) {
al.clear();
res.clear();
RelativeCalculater.now = “你“;
RelativeCalculater.isOlder = true;
RelativeCalculater.olderButton.setBackground(new Color(84 110 122));
RelativeCalculater.resultTextArea.setText(““);
}
// 若ArrayList为空则提示不可再回退
if (res.isEmpty()) {
if (al.isEmpty()) {
RelativeCalculater.resultTextArea.setText(“已经不可回退“);
RelativeCalculater.now = “你“;
} else {
al.clear();
RelativeCalculater.now = “
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2631 2017-06-29 08:43 计算器\data.txt
文件 301 2017-06-22 11:13 计算器\RelativeCalculater\.classpath
文件 394 2017-06-22 11:13 计算器\RelativeCalculater\.project
文件 598 2017-06-22 11:13 计算器\RelativeCalculater\.settings\org.eclipse.jdt.core.prefs
文件 5211 2017-07-02 11:14 计算器\RelativeCalculater\bin\com\xie\rel\ButtonListener.class
文件 6522 2017-07-02 11:14 计算器\RelativeCalculater\bin\com\xie\rel\RelativeCalculater.class
文件 2221 2017-07-02 11:14 计算器\RelativeCalculater\bin\com\xie\rel\StringSubClass.class
文件 7810 2017-07-02 11:14 计算器\RelativeCalculater\src\com\xie\rel\ButtonListener.java
文件 9676 2017-07-02 11:14 计算器\RelativeCalculater\src\com\xie\rel\RelativeCalculater.java
文件 1649 2017-07-02 11:14 计算器\RelativeCalculater\src\com\xie\rel\StringSubClass.java
目录 0 2017-07-05 16:10 计算器\RelativeCalculater\bin\com\xie\rel
目录 0 2017-07-05 16:10 计算器\RelativeCalculater\src\com\xie\rel
目录 0 2017-07-05 16:10 计算器\RelativeCalculater\bin\com\xie
目录 0 2017-07-05 16:10 计算器\RelativeCalculater\src\com\xie
目录 0 2017-07-05 16:10 计算器\RelativeCalculater\bin\com
目录 0 2017-07-05 16:10 计算器\RelativeCalculater\src\com
目录 0 2017-07-05 16:10 计算器\RelativeCalculater\.settings
目录 0 2017-07-05 16:10 计算器\RelativeCalculater\bin
目录 0 2017-07-05 16:10 计算器\RelativeCalculater\src
目录 0 2017-07-05 16:10 计算器\RelativeCalculater
目录 0 2017-07-07 14:51 计算器
----------- --------- ---------- ----- ----
37013 21
- 上一篇:挖掘关联规则中AprioriTid算法的改进.pdf
- 下一篇:云计算3层架构
评论
共有 条评论