java实现投票程序设计

本文实例为大家讲述了java实现投票程序设计代码,分享给大家供大家参考,具体内容如下

运行效果图:

程序如下:

import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;

import javax.swing.*;

public class VoteTest implements ActionListener{
    private JFrame frame;
    private JPanel p1,p2,p3,p2_1;
    private JLabel label1,label2,label3;
    private JTextField name,votemess;
    private JTextField schoolVote[];
    private JButton com,con,sure,resh,sort;
    private Checkbox checkbox[];
    private int[] count;
    private int totalVote,schoolNumber,max,dis,giveup;

    public VoteTest(){
        frame=new JFrame("中国大学排行榜选票系统v1.0");

        p1=new JPanel();
        p2=new JPanel();
        p3=new JPanel();

        label1=new JLabel("首先输入候选学校的名字(数量不超过10,名字之间用逗号分隔):");
        label2=new JLabel("用下面的选择框统计选票:",JLabel.CENTER);
        label3=new JLabel("选举结果:");

        name=new JTextField(10);
        votemess=new JTextField(46);
        schoolVote=new JTextField[10];

        com=new JButton("确认");
        con=new JButton("取消");
        sure=new JButton("确定");
        resh=new JButton("刷新");
        sort=new JButton("排序");

        checkbox=new Checkbox[10];
        p2_1=new JPanel();

        count=new int[10];//记录学校的选票数
        totalVote=0;
        schoolNumber=0;
        max=3;
        dis=0;
        giveup=0;

        init();
    }

    public void init(){
        frame.setLayout(new GridLayout(3,1));
        frame.add(p1);
        frame.add(p2);
        frame.add(p3);

        p1.setLayout(new BorderLayout());
        p1.add(label1,BorderLayout.NORTH);
        p1.add(name,BorderLayout.CENTER);
        JPanel p1_3;
        p1_3=new JPanel();
        p1_3.add(com);p1_3.add(con);p1_3.add(label2);
        p1.add(p1_3,BorderLayout.SOUTH);

        p2.setLayout(new BorderLayout());
        JPanel p2_2;
        p2_2=new JPanel();
        p2_1.setLayout(new GridLayout(2,5));
        for(int i=0;i<=9;i++){
            checkbox=new Checkbox();
            p2_1.add(checkbox);
        }
        p2_2.add(sure);p2_2.add(resh);p2_2.add(sort);
        p2.add(p2_1,BorderLayout.CENTER);
        p2.add(p2_2,BorderLayout.SOUTH);

        p3.setLayout(new BorderLayout());
        JPanel p3_1,p3_2;
        p3_1=new JPanel();
        p3_2=new JPanel();
        p3_1.add(label3);p3_1.add(votemess);
        p3_2.setLayout(new GridLayout(10,1));
        for(int i=0;i<=9;i++){
            schoolVote=new JTextField();
            p3_2.add(schoolVote);
        }
        ScrollPane scroll=new ScrollPane();
        scroll.add(p3_2);
        p3.add(p3_1,BorderLayout.NORTH);p3.add(scroll,BorderLayout.CENTER);

        com.addActionListener(this);con.addActionListener(this);
        sure.addActionListener(this);resh.addActionListener(this);
        sort.addActionListener(this);

    }

    public void show(){
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    /* (non-Javadoc)
     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
     */
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        String s[]=new String[10];
        if(e.getSource()==com){
            p2_1.removeAll();
            String s_name=name.getText();
            //提取候选的名字,名字用逗号(英文逗号或汉文逗号)分隔;
            StringTokenizer fenxi=new StringTokenizer(s_name,",,");
            schoolNumber=fenxi.countTokens();//获取候选的个数
            int i=0;
            while(fenxi.hasMoreTokens()){    //用单选框代表候选,并添加到面板p2_1
                s=fenxi.nextToken();
                p2_1.add(checkbox);
                checkbox.setLabel(s);
                i++;
            }
            for(int k=0;k<schoolNumber;k++){
                schoolVote[k].setText(null);
            }
        }else if(e.getSource()==con){
            name.setText(null);
            com.setEnabled(true);
            for(int k=0;k<schoolNumber;k++){
                schoolVote[k].setText(null);
            }
        }else if(e.getSource()==sure){
            totalVote=totalVote+1;
            com.setEnabled(false);
            int number=0;
            for(int k=0;k<schoolNumber;k++){
                if(checkbox[k].getState()){
                    number++;
                }
            }
            if(number>max){
                dis++;
                for(int k=0;k<schoolNumber;k++){
                    checkbox[k].setState(false);
                }
            }else if(number==0){
                giveup++;
            }else if(number>0&&number<=max){
                for(int k=0;k<schoolNumber;k++){
                    if(checkbox[k].getState()){
                        count[k]=count[k]+1;
                        checkbox[k].setState(false);
                        schoolVote[k].setText(checkbox[k].getLabel()+"的得票数:"+count[k]);
                    }else{
                        schoolVote[k].setText(checkbox[k].getLabel()+"的得票数:"+count[k]);
                    }
                }
            }
            votemess.setText("己统计了:"+totalVote+"张选票,其中弃权票:"+giveup+"作废票:"+dis);
        }else if(e.getSource()==sort){
            for(int i=0;i<schoolNumber;i++){
                for(int j=i+1;j<schoolNumber;j++){
                    if(count[j]>count){
                        String str_temp=schoolVote.getText();
                        schoolVote.setText(schoolVote[j].getText());
                        schoolVote[j].setText(str_temp);
                        int nnn=count;count=count[j];count[j]=nnn;
                    }
                }
            }
            sort.setEnabled(false);sure.setEnabled(false);
        }else if(e.getSource()==resh){
            totalVote=0;
            votemess.setText("己统计了:"+totalVote+"张选票");
            name.setText(null);
            com.setEnabled(true);sure.setEnabled(true);sort.setEnabled(true);
            for(int i=0;i<=4;i++){
                count=0;
                schoolVote.setText(null);
                p2_1.removeAll();
            }
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new VoteTest().show();
    }    

}

希望本文所述对大家学习java软件编程有所帮助。

(0)

相关推荐

  • C#影院售票系统毕业设计(4)

    回顾:上一篇文章总结了影院售票系统核心部分-售票,整个项目也就完成了2/3了,需求中也要求了对销售信息的保存,今天就继续总结销售信息的保存以及加载销售信息. 分析:退出程序时将已售出票集合中的对象循环写入到文本文件中,读取时循环读入并加入到已售出票集合中,下面看具体实现 public void Save() { //保存的文件 FileStream fs = new FileStream("soldTickets.txt", FileMode.OpenOrCreate); Stream

  • 一个简单的PHP投票程序源码

    分析:  我们利用一个文件(data.dat)来存储投票栏目.每个栏目占据一行.  这样一来,便可随意加入和减去想要投票的栏目.  我们再利用一个文件(votes.dat)来存储我们的投票结果.  并纪录最近一位投票者的IP地址,简单的防止一人多投.  所以,您应该在该程序目录下自行建立两个文件data.dat和votes.dat  程序运行过程部分  程序运行时应该先有一个投票的HTML表单,等待投票.  当有人在HTML表单上投票时,判断它的IP是否为最近一位投票者的IP,  如果此人刚刚投

  • JavaWeb搭建网上图书商城毕业设计

    以前一直接触.net相关的web开发,现在猛然使用javaWeb还是很不习惯,就连搭个框架也是第一次. 一.谈谈项目架构 一开始接触.net相关的开发所以对于.net相关的开发还是比较熟悉的,但我在学校学的java方向的开发,而我打算把这两种平台结合起来,使用java做后台也就是服务提供者,将所有业务逻辑在java平台完成并使用我比较熟悉的.net做Web端的开发.这样一来安卓app,web端就都有了.客户端统一通过分布式框架调用服务.找了很久最终选择了Hprose,这一轻量级.跨语言.跨平台.

  • 用ajax实现的自动投票的代码

    一朋友委托我帮他投票,地址在: http://publish.sina.com.cn/04/13/413/search.php 投票的链接是: http://publish.sina.com.cn/poll.php?p_id=413&t_id=119 我于是做了下面一段代码,做成任务管理器,每隔1分钟打开一次,再自动关闭窗口,但实际运行下来,却无效果,不知问题出在哪里? 复制代码 代码如下: <html> <script language="javascript&quo

  • 基于jQuery的投票系统显示结果插件

    首先还是来看一下运行效果如图1所示. 该插件使用步骤 一.引入css文件 首先页面引入css样式文件'votecss.css',他是投票结果正常显示必不可少的.具体代码如下所示: <link href="startpic/votecss.css" rel="stylesheet" type="text/css" /> 二.引入jQuery的就是源文件 该插件是以jQuery为基础的所以引入jQuery插件是必须的具体代码如下: <

  • 基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码

    打造 漂亮 动态 友好的 精选随机色彩 投票百分比展示 效果 HTML结构: 复制代码 代码如下: <ul class="vote-box-list clearfix" id="appVoteBox"> <li class="vl-item" id="voteItem0" > <div class="vote-item-wrap"> <h4>A:</h4

  • 用vbs实现的利用ADSL拨号变ip刷投票的代码

    以前写过一个利用ADSL拨号变ip刷流量的vbs,只要把刷新的页面稍微改一下(添加个自动提交的js)就是了,可是怎么找都找不到了,没法重新写. 还有种办法就是vbs直接提交,可是写了半天,怎么也没运行起,以后改好了在贴出来. 写的时候遇到了点问题,就是利用网页的js提交的时候,会跳转跳显示投票成果的页面,会弹出个投票成功的对话框,这会影响下面的打开网页.又没法屏蔽,所以采用了个折衷办法,每次结束浏览器进程,在刷后面的页面. 复制代码 代码如下: Const ForAppending = 8 Co

  • C#影院售票系统毕业设计(3)

    前一篇文章<C#影院售票系统毕业设计(2)>中总结了动态绘制控件.票类型的切换以及数据在窗体中的展现.今天继续总结! 本文总结项目中最核心的部分--购票.座位颜色状态的改变及场次座位状态的显示. 分析: 1.在选中时间(场次)后更新出座位状态(label实现),售出的为红色,未售出的显示为黄色. 2.已售出提示已经售出并不进行任何操作,未售出的询问是否购买. 3.根据选择的是普通票.赠票.还是学生票分别创建不同的票对象 如果选择赠票则需要检测赠送者否填写 如果选择的是学生票需要检测折扣是否选择

  • PHP+MySQL投票系统的设计和实现分享

    系统不大,完成这个系统的过程我分了三个步骤 •数据库设计 •系统框架设计 •前端美化 数据库的设计 设计三张表:投票结果统计表(count_voting),投票人记录表(ip_votes),用户表(user) 投票结果统计表用于统计最后的投票记录,我给它弄了4个字段:被投票项的名称(SelectName),被投票项标签名(LabelName)(起到分类的作用),票数(CountVotes). 投票人记录表用于登记投票人的ip(IP),地理位置(Location),投票时间(VoteTime),被

  • java实现投票程序设计

    本文实例为大家讲述了java实现投票程序设计代码,分享给大家供大家参考,具体内容如下 运行效果图: 程序如下: import java.awt.*; import java.awt.Event.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.StringTokenizer; import javax.swing.*; public class VoteTest

  • Java简易计算器程序设计

    编写一个模拟计算器的应用程序,使用面板和网格布局, 添加一个文本框,10个数字按钮(0~9),4个加减乘除按钮, 一个等号按钮,一个清除按钮,一个求平方根按钮,一个退格按钮, 要求将计算公式和结果显示在文本框中,实现效果如下图所示. Java简易计算器代码: import javax.swing.*; import javax.swing.JTextField; import java.awt.*; import java.awt.event.*; import java.lang.*; imp

  • Java分支结构程序设计实例详解

    1.从键盘输入三个整数分别存入num1,num2,num3,对他们进行排序,并且从小到大输出. import java.util.Scanner; public class CompareThreeNumber { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入你的第一个整数:"); int num1 = scan.nextIn

  • java使用JDBC动态创建数据表及SQL预处理的方法

    本文实例讲述了java使用JDBC动态创建数据表及SQL预处理的方法.分享给大家供大家参考,具体如下: 这两天由于公司的需求,客户需要自定义数据表的字段,导致每张表的字段都不是固定的而且很难有一个通用的模板去维护,所以就使用JDBC动态去创建数据表,然后通过表的字段动态添加数据,数据的来源主要是用户提供的Excel直接导入到数据库中. 如果考虑到字段的类型,可以通过反射的机制去获取,现在主要用户需求就是将数据导入到数据库提供查询功能,不能修改,所以就直接都使用String类型来处理数据更加便捷.

  • Java基于jdbc连接mysql数据库操作示例

    本文实例讲述了Java基于jdbc连接mysql数据库操作.分享给大家供大家参考,具体如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MySQLDemo { private Connection conn = null; pri

  • Java使用JDBC实现Oracle用户认证的方法详解

    本文实例讲述了Java使用JDBC实现Oracle用户认证的方法.分享给大家供大家参考,具体如下: 两天时间写的小品,以前的J2EE环境基本使用框架.现在使用JDBC配合Oracle存储过程模拟了一下用户注册和用户认证. 一.添加必须的jar包 需要JDBC连接Oracle的包和shiro-core依赖,添加shiro-core主要为了方便使用SHA-256散列算法. 二.编写JDBC连接 import java.sql.Connection; import java.sql.DriverMan

  • java基于jdbc连接mysql数据库功能实例详解

    本文实例讲述了java基于jdbc连接mysql数据库的方法.分享给大家供大家参考,具体如下: 一.JDBC简介 Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.JDBC也是Sun Microsystems的商标.它JDBC是面向关系型数据库的. 1.JDBC架构: JDBC API支持两层和三层处理模型进行数据库访问,但在一般的JDBC体系结构由

  • Java API学习教程之正则表达式详解

    前言 正则表达式是什么应该不用过多介绍,每位程序员应该都知道,正则表达式描述的是一种规则,符合这种限定规则的字符串我们认为它某种满足条件的,是我们所需的.在正则表达式中,主要有两种字符,一种描述的是普通的字符,另一种描述的是元字符.其中元字符是整个正则表达式的核心,并由它完成规则的制定工作. 本篇文章主要从Java这门程序设计语言的角度理解正则表达式的应用,主要涉及以下内容: •基本正则表达式的理论基础 •Java中用于正则表达式匹配的类 •几种常用的正则表达式使用实例 一.正则表达式的理论基础

  • java连接mysql数据库及测试是否连接成功的方法

    本文实例讲述了java连接mysql数据库及测试是否连接成功的方法.分享给大家供大家参考,具体如下: package com.test.tool; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement

  • Filter、Servlet、Listener的学习_动力节点Java学院整理

    Java中Filter.Servlet.Listener的学习资料,希望大家喜欢 1.Filter的功能 filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个"servlet chaining"(servlet 链). 一个Filte

随机推荐