selectpane.java

来自「添加侯选人,统计选票,查看选举结果,结果按选票数量从大到小排列」· Java 代码 · 共 86 行

JAVA
86
字号
import java.awt.*;
import java.awt.event.*;
public class SelectPane extends Panel implements ActionListener,ItemListener
{
	Label label=new Label("请将你推选的人选中:");
	int maxSelectedNumber;
	int  弃权票数;
	int totalVote;
	PersonSelected personSelected[];
	Button button;
	SelectPane(PersonSelected personSelected[],int max)
	{
		this.personSelected=personSelected;
		maxSelectedNumber=max;
		button=new Button("确认");
		button.addActionListener(this);
		init();
	}
	public void init()
	{
		removeAll();
		add(label);
		for(int k=0;k<personSelected.length;k++)
		{
			personSelected[k].getBox().addItemListener(this);
			add(personSelected[k].getBox());
		}
		add(button);
		validate();
		
	}
	public void actionPerformed(ActionEvent e)
	{
		totalVote=totalVote+1;
		int number=0;
		for(int k=0;k<personSelected.length;k++)
		{
			if(personSelected[k].getBox().getState())
			{
				number++;
			}
		}
		if(number==0)
		{
			弃权票数++;
			
		} 
		else {
			for(int k=0;k<personSelected.length;k++)
			{
				if(personSelected[k].getBox().getState())
				{
					personSelected[k].addCount();
					personSelected[k].getBox().setState(false);
				}
			}
		}
		label.setText("已统计了:"+totalVote+"张选票,其中弃权张数为:"+弃权票数);
		validate();
	}
	public void itemStateChanged(ItemEvent e)
	{
		Checkbox box=(Checkbox)e.getItemSelectable();
		int number=0;
		for(int k=0;k<personSelected.length;k++)
		{
			if(personSelected[k].getBox().getState())
			{
				number++;
			}
		}
		if(number>maxSelectedNumber)
		{
			box.setState(false);
		}
	}
	public PersonSelected[] getPersonSelected()
	
	{
		return personSelected;
	}
	public void setPersonSelected(PersonSelected personSelected[])
	{
		this.personSelected=personSelected;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?