简单的投票计数软件

简单的投票计数软件

设计过程:

1)编写VoteSystem类,该类继承了JFrame。在框架中,共包括4个复选框、4个进度条、4个标签和两个按钮。

   “提交”按钮用于计算从新投票的结果。“刷新”按钮用于重置复选框。

2)编写do_submitButton_actionPerformed()方法,该方法首先获得历史投票数,然后根据用户在复选框的选择结果,重新计算投票结果并在进度条和标签中显示。核心代码如下:

private void do_submitButton_actionPerformed(ActionEvent e) {
		String text1 = label1.getText();
		int number1 = Integer.parseInt(text1.substring(0, text1.length() - 1));
		String text2 = label2.getText();
		int number2 = Integer.parseInt(text2.substring(0, text2.length() - 1));
		String text3 = label3.getText();
		int number3 = Integer.parseInt(text3.substring(0, text3.length() - 1));
		String text4 = label4.getText();
		int number4 = Integer.parseInt(text4.substring(0, text4.length() - 1));
		if (checkBox1.isSelected()) {
			number1++;
			label1.setText(number1 + "票");
		}
		if (checkBox2.isSelected()) {
			number2++;
			label2.setText(number2 + "票");
		}
		if (checkBox3.isSelected()) {
			number3++;
			label3.setText(number3 + "票");
		}
		if (checkBox4.isSelected()) {
			number4++;
			label4.setText(number4 + "票");
		}
		double total = number1 + number2 + number3 + number4;
		progressBar1.setString(number1 * 100 / total + "%");
		progressBar1.setValue(number1);
		progressBar2.setString(number2 * 100 / total + "%");
		progressBar2.setValue(number2);
		progressBar3.setString(number3 * 100 / total + "%");
		progressBar3.setValue(number3);
		progressBar4.setString(number4 * 100 / total + "%");
		progressBar4.setValue(number4);

	}


完整代码如下:

package cn.str.opera;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;

import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.GridLayout;


public class VoteSystem extends JFrame {

	private static final long serialVersionUID = 2634692504060297073L;
	private JPanel contentPane;
	private JCheckBox checkBox1;
	private JCheckBox checkBox2;
	private JCheckBox checkBox3;
	private JCheckBox checkBox4;
	private JLabel label1;
	private JLabel label2;
	private JLabel label3;
	private JLabel label4;
	private JProgressBar progressBar1;
	private JProgressBar progressBar2;
	private JProgressBar progressBar3;
	private JProgressBar progressBar4;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		try {
			UIManager
					.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		} catch (Throwable e) {
			e.printStackTrace();
		}
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					VoteSystem frame = new VoteSystem();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public VoteSystem() {
		setTitle("\u6295\u7968\u7CFB\u7EDF");
		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 buttonPanel = new JPanel();
		contentPane.add(buttonPanel, BorderLayout.SOUTH);

		JButton submitButton = new JButton("\u63D0\u4EA4");
		submitButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				do_submitButton_actionPerformed(e);
			}

		});
		submitButton.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		buttonPanel.add(submitButton);

		JButton refreshButton = new JButton("\u5237\u65B0");
		refreshButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				do_refreshButton_actionPerformed(e);
			}

		});
		refreshButton.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		buttonPanel.add(refreshButton);

		JPanel panel = new JPanel();// 创建面板,并设计面板标题
		panel.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0)),
				"\u9009\u62E9\u60A8\u64C5\u957F\u7684\u8BED\u8A00",
				TitledBorder.LEADING, TitledBorder.TOP, null, new Color(59, 59,
						59)));
		contentPane.add(panel, BorderLayout.CENTER);
		panel.setLayout(new GridLayout(4, 1, 15, 15));
		
		
    //面板java
		JPanel panel1 = new JPanel();
		panel.add(panel1);
		panel1.setLayout(new BorderLayout(0, 0));		

		checkBox1 = new JCheckBox("Java:");
		panel1.add(checkBox1, BorderLayout.WEST);
		
		label1 = new JLabel("0\u7968");
		panel1.add(label1, BorderLayout.EAST);

		progressBar1 = new JProgressBar();
		progressBar1.setStringPainted(true);
		panel1.add(progressBar1, BorderLayout.CENTER);
		
	//面板Peri
		JPanel panel2 = new JPanel();
		panel.add(panel2);
		panel2.setLayout(new BorderLayout(0, 0));
		
		checkBox2 = new JCheckBox("Perl:");
		panel2.add(checkBox2, BorderLayout.WEST);
		
		progressBar2 = new JProgressBar();
		progressBar2.setStringPainted(true);
		panel2.add(progressBar2, BorderLayout.CENTER);
		
		label2 = new JLabel("0\u7968");
		panel2.add(label2, BorderLayout.EAST);
		
		
	//面板Ruby
		JPanel panel3 = new JPanel();
		panel.add(panel3);
		panel3.setLayout(new BorderLayout(0, 0));
		
		checkBox3 = new JCheckBox("Ruby:");
		panel3.add(checkBox3, BorderLayout.WEST);
		
		progressBar3 = new JProgressBar();
		progressBar3.setStringPainted(true);
		panel3.add(progressBar3, BorderLayout.CENTER);
		
		label3 = new JLabel("0\u7968");
		panel3.add(label3, BorderLayout.EAST);
		
		
		
	//面板Logo
		JPanel panel4 = new JPanel();
		panel.add(panel4);
		panel4.setLayout(new BorderLayout(0, 0));
		
		checkBox4 = new JCheckBox("Logo:");
		panel4.add(checkBox4, BorderLayout.WEST);
		
		progressBar4 = new JProgressBar();
		progressBar4.setStringPainted(true);
		panel4.add(progressBar4, BorderLayout.CENTER);
		
		label4 = new JLabel("0\u7968");
		panel4.add(label4, BorderLayout.EAST);		
		

	}

	private void do_submitButton_actionPerformed(ActionEvent e) {
		String text1 = label1.getText();
		int number1 = Integer.parseInt(text1.substring(0, text1.length() - 1));
		String text2 = label2.getText();
		int number2 = Integer.parseInt(text2.substring(0, text2.length() - 1));
		String text3 = label3.getText();
		int number3 = Integer.parseInt(text3.substring(0, text3.length() - 1));
		String text4 = label4.getText();
		int number4 = Integer.parseInt(text4.substring(0, text4.length() - 1));
		if (checkBox1.isSelected()) {
			number1++;
			label1.setText(number1 + "票");
		}
		if (checkBox2.isSelected()) {
			number2++;
			label2.setText(number2 + "票");
		}
		if (checkBox3.isSelected()) {
			number3++;
			label3.setText(number3 + "票");
		}
		if (checkBox4.isSelected()) {
			number4++;
			label4.setText(number4 + "票");
		}
		double total = number1 + number2 + number3 + number4;
		progressBar1.setString(number1 * 100 / total + "%");
		progressBar1.setValue(number1);
		progressBar2.setString(number2 * 100 / total + "%");
		progressBar2.setValue(number2);
		progressBar3.setString(number3 * 100 / total + "%");
		progressBar3.setValue(number3);
		progressBar4.setString(number4 * 100 / total + "%");
		progressBar4.setValue(number4);

	}

	private void do_refreshButton_actionPerformed(ActionEvent e) {
		checkBox1.setSelected(false);
		checkBox2.setSelected(false);
		checkBox3.setSelected(false);
		checkBox4.setSelected(false);

	}

}


 

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanqima

一键三连,多多益善

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值