2 qq 20728645 qq_20728645 于 2015.06.21 17:12 提问

java程序功能设计分析和程序基本组成框架结构 大神们帮帮忙 2C

package com.mingrisoft.ballot;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;

class Candidate extends JCheckBox { // 定义内容类,该类继承JCheckBox类
int len = 0;

Candidate(String name, Icon icon) { // 该类包含有两个参数
    super(name, icon);
}

public int getBallot(String name) {
    File file = new File("C://count.txt"); // 创建文件对象
    FileReader fis;
    try {
        if (!file.exists()) // 如果该文件不存在
            file.createNewFile(); // 新建文件
        fis = new FileReader(file);
        BufferedReader bis = new BufferedReader(fis); // 创建BufferedReader对象
        String str[] = new String[3];
        String size;
        int i = 0;
        while ((size = bis.readLine()) != null) { // 循环读取文件内容
            str[i] = size.trim(); // 去除字符串中的空格
            if (str[i].startsWith(name)) {
                int length = str[i].indexOf(":");
                String sub = str[i].substring(length + 1, str[i].length()); // 对字符串进行截取
                len = Integer.parseInt(sub);
                continue;
            }
            i++;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return len;
}

public void addBallot(String name) { // 定义增加选票方法
    File file = new File("C://count.txt"); // 创建文件对象
    FileReader fis;
    try {
        if (!file.exists()) // 如果该文件不存在
            file.createNewFile(); // 新建文件
        fis = new FileReader(file); // 对FileReader对象进行实例化
        BufferedReader bis = new BufferedReader(fis);
        String str[] = new String[3];
        String size;
        int i = 0;
        while ((size = bis.readLine()) != null) { // 循环读取文件
            str[i] = size.trim();
            if (str[i].startsWith(name)) {
                int length = str[i].indexOf(":"); // 获取指定字符索引位置
                String sub = str[i].substring(length + 1, str[i].length()); // 对字符串进行截取
                len = Integer.parseInt(sub) + 1;
                break;
            }
            i++;
        }
        FileWriter fw = new FileWriter(file); // 创建FileWriter 对象
        BufferedWriter bufw = new BufferedWriter(fw);
        bufw.write(name + ":" + len); // 向流中写数据

        bufw.close(); // 关闭流
        fw.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

class MyMin extends JFrame implements ActionListener {
Box baseBox, boxH, boxV; // 创建Box对象
JTextArea text; // 创建JTextArea对象
JButton button; // 创建JButton对象
Candidate candidateOne, candidateTwo, candidateThree;

public MyMin() { // 在构造方法中设置窗体布局
    setBounds(100, 100, 500, 120);
    setVisible(true);
    setTitle("选出你心中的好干部!!");
    addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) { // 窗体关闭事件
            System.exit(0);
        }
    });
    baseBox = Box.createHorizontalBox();
    boxH = Box.createHorizontalBox();
    boxV = Box.createHorizontalBox();
    candidateOne = new Candidate("小兵", new ImageIcon(getClass()
            .getResource("0.gif")));
    candidateTwo = new Candidate("小陈", new ImageIcon(getClass()
            .getResource("1.gif")));
    candidateThree = new Candidate("小李", new ImageIcon(getClass()
            .getResource("2.gif")));
    candidateOne.setSelectedIcon(new ImageIcon(getClass().getResource(
            "0.gif")));
    candidateTwo.setSelectedIcon(new ImageIcon(getClass().getResource(
            "1.gif")));
    candidateThree.setSelectedIcon(new ImageIcon(getClass().getResource(
            "2.gif")));
    boxH.add(candidateOne);
    boxH.add(candidateTwo);
    boxH.add(candidateThree);
    text = new JTextArea();
    button = new JButton("显示得票数");
    button.addActionListener(this);
    boxV.add(text);
    boxV.add(button);
    boxV.add(boxH);
    baseBox.add(boxV);
    Container con = getContentPane();
    con.setLayout(new FlowLayout());
    con.add(baseBox);
    con.validate();
}

@Override
public void actionPerformed(ActionEvent e) {
    text.setText(null);
    File file = new File("C://count.txt"); // 创建文件对象
    if (!file.exists()) { // 如果该文件不存在
        try {
            file.createNewFile(); // 新建文件
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }
    if (candidateOne.isSelected()) {
        candidateOne.addBallot(candidateOne.getText());
    }
    if (candidateTwo.isSelected()) {
        candidateTwo.addBallot(candidateTwo.getText());
    }
    if (candidateThree.isSelected()) {
        candidateThree.addBallot(candidateThree.getText());
    }
    text.append(candidateOne.getText() + ":"
            + candidateOne.getBallot(candidateOne.getText()) + "\n");
    // 向文本框中追加信息
    text.append(candidateTwo.getText() + ":"
            + candidateTwo.getBallot(candidateTwo.getText()) + "\n");
    text.append(candidateThree.getText() + ":"
            + candidateThree.getBallot(candidateThree.getText()) + "\n");
    try {
        if (!file.exists()) {
            file.createNewFile();
        }
        FileWriter fw = new FileWriter(file); // 创建FileWriter类对象
        BufferedWriter bufw = new BufferedWriter(fw); // 创建BufferedWriter类对象
        bufw.write(text.getText()); // 将字符串数组中元素写入到磁盘文件中
        bufw.close(); // 将BufferedWriter流关闭
        fw.close();

    } catch (IOException e1) {
        e1.printStackTrace();
    }

    candidateOne.setSelected(false);
    candidateTwo.setSelected(false);
    candidateThree.setSelected(false);
}

}

public class Ballot {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
new MyMin();
}
}

2个回答

caozhy
caozhy   Ds   Rxr 2015.06.21 18:41

你的问题是什么,这个注释很详细了,结合程序运行的界面,不难理解。如果你对swing没有概念,先google下。

qq_20728645
qq_20728645 就是从该程序中具体分析 窗体和文本框的设计
大约 3 年之前 回复
qq_20728645
qq_20728645   2015.06.21 18:57

从该程序中具体分析 窗体和文本框的设计过程

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java的基本程序设计结构(一)
第一个应用程序 public class FirstTest{ public static void main(String[] args){ System.out.println("Hello,World"); } } 这就是java应用程序的基本机构。java对大小写敏感,如果出现了大小写拼写错误(如:main写成Main),程序可能无法运行。 上述代码中
Android基本框架结构
图       由上图,我们可以看出Android系统架构由5部分组成, 分别是:Linux Kernel(linux内核)、Android Runtime(运行时环境)、Libraries(类库)、Application Framework(应用框架)、Applications(应用)。 2.1、Linux Kernel Android基于Lin
java程序各个组成部分
一.数据 1.标识符和关键字 标识符:http://baike.baidu.com/view/6216763.htm 关键字:http://baike.baidu.com/view/1849120.htm 记: 1.Java标识符由数字,字母和下划线(_),美元符号($)组成。在Java中是区分大小写的。而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。
JAVA WEB各个组成部分功能以及基本流程
JSP 所有的网页代码 js所有的javaScript代码 bo一般是java的类文件 dao一般是处理数据库方法的接口 impl是上述接口的实现 service 是 处理数据库逻辑的服务 action 是处理业务逻辑的 xml是配置文件 jsp得到请求到 structs的配置文件里找相应的配置方法,根据配置方法到action里找到处理的方法,然后执行,返回一个结果,再到刚才的配置
PE文件结构(一) 基本结构
PE文件结构(一) 参考 书:《加密与解密》 视频:小甲鱼 解密系列 视频 exe,dll都是PE(Portable Execute)文件结构。PE文件使用的是一个平面地址空间,所有代码和数据都被合并在一起,组成一个很大的结构。先看2张图,来大概了解一下PE文件结构。 PE文件的框架结构 通过这张图(开始在下面),我们可以知道PE文件的大概结构,PE文件是由 DOS头,PE文件头,块表,块,调试信息 这些部分组成的。这些结构的定义在 winnt.h 中的 “Image
Android基本组成架构
Android 是Google开发的基于Linux平台的开源手机操作系统。其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。      Android架构图  ·Android系统架构分为四个层,从高层到低
博客园里的大神们
做IT码农的这段时间里,我就像一个拾荒者,在网络上寻找着各种技术的踪迹。发现它们,揣测它们,理解它们,最终驾驭它们。在这期间,总会碰见这样几个人,你总能在各个地方看到他们的文章,他们的影子。 他们被菜鸟称之为大神,其实单论技术,他们或许并不是最强的,但是他们已经能够把技术描述的非常通俗易懂。像我之前做eclipse插件开发的时候,菜鸟期基本上是看着八进制的博客度过的,直到自己开始看eclipse
自动化测试框架结构图
自动化测试框架组织结构图
例题4-6 师兄帮帮忙 UVa12412
例题4-6 师兄帮帮忙 UVa12412 感悟。 1、阅读书中题目,从网站下载英文原题,重点在看输出数据与格式。 2、开始编码,先搭函数框架,具体功能实现,待主体框架打好后,再进行。 3、程序测试比较繁琐,有较多的输出输出,有些接近现实的应用程序了。 4、add功能还算顺利,数据采用结构体数组的方式存储。 5、query功能,发现要添加要在结构体中继续添加一些数据,还需在add功能
Java程序结构初步分析
 完整java源程序结构:package语句;//该语句至多一句import语句; //该部分可以有若干import语句或者没有,必须放在所有的类定义之前public classDefinition;   //公共类定义部分,至多只有一个公共类的定义                       //java语言规定该java源程序的文件名必须与该公共类名完全一致(日本java,脑壳有问