最近有空在学习下Swing方面的知识,就做了点放上来
程序如下:
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();
}
}
- 大小: 46.2 KB
分享到:
相关推荐
这是一个简单投票程序,servlet+JSP写的,无防止重复投票的功能,自己写此类程序时可参考,有全部源码,可直接运行
java实现简单投票程序 jdk 源程序 解压后用myeclipse 打开。
asp简单投票,投票程序。小投票代码。asp简单投票,投票程序。小投票代码。
1.ajax文章心情投票程序php版 2.很是不错,强烈推荐~
使用vs2005开发,数据库为Access2003,使用时请将App_data下的vote.mdb拷贝到e盘下,当然你也可以通过修改源代码来改变数据库的位置,...使用Session来防止用户反复投票,这个小项目是你学习asp.net的一个比较不错的项目.
一个简单的网上投票系统用JSP做的小程序,能统计投票,分用户登录和管理员登录。
一个简单的PHP投票程序 默认为admin
一个简单的PHP投票程序源码
这是一个简单的投票系统,利用C#方法做的。对于初学者来说应该是比较好的。希望大家多多提意见,因为我本人对于C#只懂一点点。
使用Application使用简单投票页面,希望对大家有帮助
在这个实战博客中,我们将创建一个简单的Java在线投票系统,演示如何构建一个基本的投票应用。我们将使用Java编程语言和一些常见的开发库来完成这个项目。 以下是本实战博客的主要内容: 项目概述 设置开发环境 ...
我自己写的一个见得的投票程序,用文件实现的,主要功能每人每天只能投一票
2个小时自己写的超简单php投票系统程序,功能也不少不多,同一天内不能给同一人投票,记事本存储数据;多多交流!!
简单投票小程序的优势在于它可以让用户快速发起投票,让参与投票的用户可以轻松参与,让投票结果及时可见,并且支持投票结果的导出,可以让用户更好的分析投票结果。简单投票小程序可以帮助用户快速发起投票,让投票...
一个很简单的ASP评投票选系统,整个系统仅一个文件,实现了数据维护、投票、排名、刷票分析等功能。由于只是个简单的单文件评选系统,因此,暂未实现图片上传和CMS功能,上传图片和详细介绍功能请借助外部CMS实现。...
一个简单的PHP投票程序
VS2008下编译完成的简易投票系统,功能完善,自动排序,报错功能细腻,注释完善。已删去Debug和ncb,所以很小,请放心下载。
这个是我给部门换届投票选举写的小程序,虽然很简单却有很强的实用价值。附全部代码,也是大家学习
一个简单的PHP投票程序
一个非常实用的asp在线投票小程序,也非常的简单,更多的实用程序请登录ita5.com 咨询sunny