📄 example13_3.java
字号:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.StringTokenizer;
public class Example13_3 extends Applet implements ActionListener
{
Label 候名字=new Label("首先输入候选人的名字(人数不超过10,名字之间用逗号分隔):"),
统计选票=new Label("用下面的选择框统计选票:",Label.CENTER),
结果=new Label("选举结果:");
Button 确认=new Button("确认"),取消=new Button("取消"),
确定=new Button("确定"),刷新=new Button("刷新"),
排序=new Button("排序");
TextField name=new TextField(48);
TextField voteMessage=new TextField(46);
Checkbox checkbox[]=new Checkbox[10];
TextField personVote[]=new TextField[10];
int count[]=new int[10],
totalVote=0,
peopleNumber=0;
Panel p2_1=new Panel();
int 有效人数=3,
废票数=0,弃权票数=0;
public void init()
{
setLayout(new GridLayout(3,1));
Panel p1=new Panel(),
p1_1=new Panel(),p1_2=new Panel(),p1_3=new Panel();
p1.setLayout(new BorderLayout());
p1_1.add(候名字);p1_2.add(name);
p1_3.add(确认);p1_3.add(取消);p1_3.add(统计选票);
p1.add(p1_1,BorderLayout.NORTH);
p1.add(p1_2,BorderLayout.CENTER);
p1.add(p1_3,BorderLayout.SOUTH);
Panel p2=new Panel(),p2_2=new Panel();
p2.setLayout(new BorderLayout());
p2.setBackground(Color.cyan);
p2_1.setLayout(new GridLayout(2,5));
p2_2.add(确定);p2_2.add(刷新);p2_2.add(排序);
p2.add(p2_1,BorderLayout.CENTER);
p2.add(p2_2,BorderLayout.SOUTH);
for(int i=0;i<=9;i++)
{
checkbox[i]=new Checkbox();
p2_1.add(checkbox[i]);
}
Panel p3=new Panel(),
p3_1=new Panel(),p3_2=new Panel();
p3.setLayout(new BorderLayout());
p3_1.add(结果);
p3_1.add(voteMessage);
p3_2.setLayout(new GridLayout(10,1));
for(int i=0;i<=9;i++)
{
personVote[i]=new TextField();
p3_2.add(personVote[i]);
}
ScrollPane scroll=new ScrollPane();
scroll.add(p3_2);
p3.add(p3_1,BorderLayout.NORTH);
p3.add(scroll,BorderLayout.CENTER);
add(p1);add(p2);add(p3);
确认.addActionListener(this);取消.addActionListener(this);
确定.addActionListener(this);刷新.addActionListener(this);
排序.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String s[]=new String[10];
if(e.getSource()==确认)
{
p2_1.removeAll();
String s_name=name.getText();
StringTokenizer fenxi=new StringTokenizer(s_name,",,");
peopleNumber=fenxi.countTokens();
int i=0;
while(fenxi.hasMoreTokens())
{
s[i]=fenxi.nextToken();
p2_1.add(checkbox[i]);
checkbox[i].setLabel(s[i]);
i++;
}
for(int k=0;k<peopleNumber;k++)
{
personVote[k].setText(null);
}
}
else if(e.getSource()==取消)
{
name.setText(null);
确认.setEnabled(true);
for(int k=0;k<peopleNumber;k++)
{
personVote[k].setText(null);
}
}
else if(e.getSource()==确定)
{
totalVote=totalVote+1;
确认.setEnabled(false);
int number=0;
for(int k=0;k<peopleNumber;k++)
{
if(checkbox[k].getState())
{
number++;
}
}
if(number>有效人数)
{
废票数++;
for(int k=0;k<peopleNumber;k++)
{
checkbox[k].setState(false);
}
}
else if(number==0)
{
弃权票数++;
}
else if(number>0&&number<=有效人数)
{
for(int k=0;k<peopleNumber;k++)
{
if(checkbox[k].getState())
{
count[k]=count[k]+1;
checkbox[k].setState(false);
personVote[k].setText(checkbox[k].getLabel()+"的得票数:"+count[k]);
}
else
{
personVote[k].setText(checkbox[k].getLabel()+"的得票数:"+count[k]);
}
}
}
voteMessage.setText("已统计了:"+totalVote+"张选票,其中弃权票:"+弃权票数+"作废票:"+废票数);
}
else if(e.getSource()==排序)
{
for(int i=0;i<peopleNumber;i++)
{
for(int j=i+1;i<peopleNumber;j++)
{
if(count[j]>count[i])
{
String str_temp=personVote[i].getText();
personVote[i].setText(personVote[j].getText());
personVote[j].setText(str_temp);
int nnn=count[i];
count[i]=count[j];
count[j]=nnn;
}
}
}
排序.setEnabled(false);
确定.setEnabled(false);
}
else if(e.getSource()==刷新)
{
totalVote=0;
voteMessage.setText("已统计了:"+totalVote+"张选票");
name.setText(null);
确认.setEnabled(true);
确定.setEnabled(true);
排序.setEnabled(true);
for(int i=0;i<=4;i++)
{
count[i]=0;
personVote[i].setText(null);
p2_1.removeAll();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -