java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java实现投票程序

java实现投票程序设计

作者:luosijin123

这篇文章主要介绍了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软件编程有所帮助。

您可能感兴趣的文章:
阅读全文