Candidatec=listc。
get(i);
d=(double)c.getNum()/voters;
c.setVoteResult((double)Math。
round(d*10000)/100);
if(d〉=percentage*0.01){
c.setVote(true);
}
}
}
}
3、UserInterface类的详细代码:
importjava。
awt.Color;
importjava.awt.Container;
importjava.awt。
Font;
importjava。
awt.event.ActionEvent;
importjava。
awt.event.ActionListener;
importjava。
util。
ArrayList;
importjava。
util.Iterator;
importjava。
util。
List;
importjava。
util.Vector;
importjavax。
swing.JButton;
importjavax.swing。
JFrame;
importjavax。
swing。
JLabel;
importjavax。
swing。
JPanel;
importjavax.swing。
JRadioButton;
importjavax。
swing。
JScrollPane;
importjavax。
swing。
JTable;
importjavax。
swing。
JTextField;
importjavax.swing.SwingConstants;
importjavax。
swing。
table。
DefaultTableCellRenderer;
/**
*
*@authorwhy
*
*/
publicclassUserInterfaceextendsJFrame{
privatestaticfinallongserialVersionUID=1L;
publicContainercontentPanel;//当前界面控制器
publicManagermanager;//利于数据通信,主要包括:
候选人数量、当选标准、投票者数量
publicJPanelp1;//输入信息的面板
publicJPanelp2;//投票面板
publicJPanelp3;//显示投票结果的面板
publicList〈JTextField〉list_textfield=newArrayList〈JTextField〉();
publicList〈JRadioButton>list_jradiobutton=newArrayList〈JRadioButton〉();
publicUserInterface(Managerm){
super(”欢迎来到投票管理系统");
this.manager=m;
this。
setVisible(true);
this.setBounds(150,30,700,700);
this。
setDefaultCloseOperation(JFrame。
EXIT_ON_CLOSE);
this.setResizable(false);
this。
setBackground(Color.black);
contentPanel=this。
getContentPane();
}
publicvoidupdate(){
this。
repaint();
this。
setVisible(true);
}
publicvoidaddCandi(intnum){
JTextFieldtext_name;
JLabellabel_name;
JButtonsubmit=newJButton("提交”);
Stringss=”";
intx1=80,x2=200,y=150,w=150,h=20;
intyy=y;
for(inti=1;i<=num;i++){
if(y>=this。
getHeight()-250){
y=yy;
x1=x1+300;
x2=x2+300;
}
y+=50;
text_name=newJTextField();//新建输入姓名的文本框
label_name=newJLabel(ss);
label_name.setText("候选人"+i+”的姓名:
”);
label_name。
setBounds(x1,y,w,h);
text_name.setBounds(x2,y,w,h);
list_textfield.add(text_name);//把输入姓名的文本框加入到list中
p1。
add(label_name);
p1.add(text_name);
this。
update();
}
submit。
setBounds(this。
getWidth()/3,this。
getHeight()—150,100,20);
submit.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
for(inti=0;i〈list_textfield.size();i++){
Stringname=list_textfield。
get(i).getText();//得到文本框中输入的候选者姓名
Candidatecandi=newCandidate(name,i+1);//根据输入的姓名生成一个候选者
manager.listc。
add(candi);//把候选者加入到list中
}
VoteGraphvoteGraph=newVoteGraph(UserInterface。
this);
voteGraph.launchVoteGraph();//加载投票面板(Panel2)
}
});
p1.add(submit);
}
}
4、MainGraph类的详细代码:
importjava。
awt。
Color;
importjava。
awt。
Container;
importjava。
awt。
Font;
importjava。
awt。
HeadlessException;
importjava。
awt。
event。
ActionEvent;
importjava。
awt.event。
ActionListener;
importjavax.swing.JButton;
importjavax。
swing。
JLabel;
importjavax.swing。
JPanel;
importjavax.swing。
JTextField;
/**
*系统的主界面,接受候选者人数,以及当选的标准
*@authorwhy
*
*/
publicclassMainGraph{
privateUserInterfaceuserInterface;//与主面板的通信
publicMainGraph(UserInterfaceuserInterface){
super();
this。
userInterface=userInterface;
}
publicvoidlaunchMainGraph(){
userInterface.p1=newJPanel();
userInterface.p1.setLayout(null);
userInterface。
p1。
setBackground(Color.orange);
userInterface。
contentPanel.add(userInterface。
p1);
JLabellab=newJLabel(”请输入投票信息");
lab。
setBounds(200,30,250,50);
intsize=25;
lab。
setFont(newFont("Serif”,Font.PLAIN,size));
JLabellabel=newJLabel(”请输入候选人的个数(1—12):
”);
finalJTextFieldtext=newJTextField();//输入候选人的个数
JLabellabelp=newJLabel(”请输当选标准(百分比):
”);
finalJTextFieldpertage=newJTextField();//输入当选百分比
JButtonb=newJButton("确定”);//对候选人个数与百分比进行计较的按钮
label。
setBounds(80,100,170,20);
labelp.setBounds(80,130,150,20);
text。
setBounds(240,100,150,20);
pertage.setBounds(240,130,150,20);
b。
setBounds(500,130,70,20);
b。
addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
userInterface.manager.candidates=Integer.parseInt(text。
getText());//得到候选者的个数
userInterface。
addCandi(userInterface。
manager。
candidates);
userInterface。
manager.percentage=Integer。
parseInt(pertage.getText());//得到当选百分比
}
});
userInterface。
p1.add(label);
userInterface.p1。
add(lab);
userInterface.p1.add(text);
userInterface。
p1。
add(b);
userInterface。
p1。
add(labelp);
userInterface。
p1。
add(pertage);
userInterface。
update();
}
}
5、VoteGraph类的详细代码:
importjava。
awt。
Color;
importjava.awt.Font;
importjava。
awt.event。
ActionEvent;
importjava。
awt。
event.ActionListener;
importjava.util.Iterator;
importjavax.swing。
JButton;
importjavax.swing。
JLabel;
importjavax.swing。
JPanel;
importjavax。
swing。
JRadioButton;
publicclassVoteGraph{
privateUserInterfaceuserInterface;//与主面板的通信
publicVoteGraph(UserInterfaceuserInterface){
super();
this。
userInterf