java实现投票程序设计
程序员文章站
2024-03-07 18:48:03
本文实例为大家讲述了java实现投票程序设计代码,分享给大家供大家参考,具体内容如下
运行效果图:
程序如下:
import java.awt.*;...
本文实例为大家讲述了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软件编程有所帮助。
上一篇: java中关于文本文件的读写方法实例总结