62,628
社区成员
发帖
与我相关
我的任务
分享


package com.holiday.vote.date0125;
/**
* 3. 题目: 简单投票管理系统
设计要求:
设计一个投票管理系统界面,要求输入候选人名单后,点击确认按钮实现使用选择框代表候选人,计选择框的名字就是候选人的名字。
点击取消按钮候选人输入框为空,重新输入候选人名单。选中候选人的选择框时,表示给该候选人投一票。点击确定按钮时表示产生一张选票。
点击刷新按钮回到程序的初始界面重新设置候选人。
根据选择框的状态变化统计出候选人的最后得票数,并可按票选取多少点击排序按钮对候选人进行排序。(其中,最多从候选人中选取3人,如果一张选票选取多于3人,该票就作废票处理。
如果一个也没投票,就作弃权处理。程序能显示一共统计了多少选票,并能统计出废票和弃权票的票数。
学习要点:
本程序主要学习窗口的布局以及按钮事件的触发。
*/
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
public class Vote extends JFrame implements ActionListener{
JPanel contentPane;
JTextField candidate0_tf;//候选人姓名文本框
JTextField candidate1_tf;
JTextField candidate2_tf;
JTextField candidate3_tf;
JTextField candidate4_tf;
JLabel input_label;//"请在每个文本框里输入候选人姓名"
public JRadioButton btn0,btn1,btn2,btn3,btn4;//投票按钮
ButtonGroup votebtnGroup;//将投票按钮添加到一组,实现单选
JTextField score0_tf,score1_tf,score2_tf,score3_tf,score4_tf;//最后得到的选票文本框
JLabel score_label; //提示总票数
JTextField leftover_tf;//剩余票数文本框
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Vote frame = new Vote();
frame.setSize(800,400);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Vote() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));
JPanel center_panel_vote = new JPanel(new GridLayout(5,1));//窗体中间的最大Panel
contentPane.add(center_panel_vote, BorderLayout.CENTER);
JPanel label_panel=new JPanel();//存放提示label的panel
input_label=new JLabel("请在每个文本框输入候选人姓名");
label_panel.add(input_label);//将提示框存放在panel中
center_panel_vote.add(label_panel);
JPanel cantf_panel=new JPanel();//存放所有候选人姓名文本框
candidate0_tf = new JTextField(); //第一个候选人姓名文本框
candidate0_tf.setColumns(7);
cantf_panel.add(candidate0_tf);
candidate1_tf = new JTextField();
candidate1_tf.setColumns(7);
cantf_panel.add(candidate1_tf);
candidate2_tf = new JTextField();
candidate2_tf.setColumns(7);
cantf_panel.add(candidate2_tf);
candidate3_tf = new JTextField();
candidate3_tf.setColumns(7);
cantf_panel.add(candidate3_tf);
candidate4_tf = new JTextField();
candidate4_tf.setColumns(7);
cantf_panel.add(candidate4_tf);
center_panel_vote.add(cantf_panel);//将候选人姓名文本框添加到最大的中间panel
JPanel votebtn_panel=new JPanel();//存放投票按钮
btn0=new JRadioButton();
btn0.setText("投第一人 ");
btn1=new JRadioButton();
btn1.setText("投第二人 ");
btn2=new JRadioButton();
btn2.setText("投第三人 ");
btn3=new JRadioButton();
btn3.setText("投第四人 ");
btn4=new JRadioButton();
btn4.setText("投第五人 ");
votebtnGroup=new ButtonGroup();
votebtnGroup.add(btn0);//将单选按钮添加到组里实现单选
votebtnGroup.add(btn1);
votebtnGroup.add(btn2);
votebtnGroup.add(btn3);
votebtnGroup.add(btn4);
votebtn_panel.add(btn0);//将按钮添加到btn_panel里
votebtn_panel.add(btn1);
votebtn_panel.add(btn2);
votebtn_panel.add(btn3);
votebtn_panel.add(btn4);
center_panel_vote.add(votebtn_panel);
JPanel scoretf_panel=new JPanel();//存放得分
score0_tf=new JTextField("0");
score1_tf=new JTextField("0");
score2_tf=new JTextField("0");
score3_tf=new JTextField("0");
score4_tf=new JTextField("0");
score0_tf.setColumns(7);
score1_tf.setColumns(7);
score2_tf.setColumns(7);
score3_tf.setColumns(7);
score4_tf.setColumns(7);
scoretf_panel.add(score0_tf);
scoretf_panel.add(score1_tf);
scoretf_panel.add(score2_tf);
scoretf_panel.add(score3_tf);
scoretf_panel.add(score4_tf);
center_panel_vote.add(scoretf_panel);
JPanel total_score=new JPanel();
score_label=new JLabel("总票数一共31票,还剩余票数:");
leftover_tf=new JTextField("31");
total_score.add(score_label);
total_score.add(leftover_tf);
center_panel_vote.add(total_score);
}
@Override
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource()==btn0) {
int leftscore=Integer.parseInt(leftover_tf.getText());
int score0=Integer.parseInt(score0_tf.getText());
score0_tf.setText((score0+1)+"");
leftover_tf.setText((leftscore-1)+"");
}
}
}