import java.awt.*;
import java.awt.event.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;import javax.swing.*;public class SelectionDemo extends JFrame implements ActionListener,ItemListener
{
    static SelectionDemo frame=new SelectionDemo();
    static Save save=new Save();
    
    static JLabel label1=new JLabel("总人数:");
    static JLabel label2=new JLabel("最高票数选手:");
    static JLabel label3=new JLabel("最高票数:");
    static JDialog dialog=new JDialog();
    static JLabel label4=new JLabel();
    static JLabel label5=new JLabel();
    static JLabel label6=new JLabel();
    static JLabel label7=new JLabel();
    static JLabel label8=new JLabel();
    static JLabel label9=new JLabel();
    static JLabel label10=new JLabel();
    static JLabel label11=new JLabel();
    static JLabel label12=new JLabel();
    static JLabel label13=new JLabel();
    
    static JButton button1=new JButton("提交");
    static JButton button2=new JButton("刷新");
    static JButton button3=new JButton("保存");
    static JButton button4=new JButton("取消");
    
    static  JTextField tf1=new JTextField("",5);
    static JTextField tf2=new JTextField("",15);
    static JTextField tf3=new JTextField("",5);
    
    static JCheckBox cb1=new JCheckBox("A");
    static JCheckBox cb2=new JCheckBox("B");
    static JCheckBox cb3=new JCheckBox("C");
    static JCheckBox cb4=new JCheckBox("D");
    static JCheckBox cb5=new JCheckBox("E");
    static JCheckBox cb6=new JCheckBox("F");
    static JCheckBox cb7=new JCheckBox("G");
    static JCheckBox cb8=new JCheckBox("H");
    static JCheckBox cb9=new JCheckBox("I");
    static JCheckBox cb10=new JCheckBox("J");
    
    static JPanel panel1=new JPanel();
    static JPanel panel2=new JPanel();
    static JPanel panel3=new JPanel();
    static JPanel panel4=new JPanel();
    
    static int count=0;
    static int count1=0;
    static int x1=100,x2=100,x3=100,x4=100,x5=100,x6=100,x7=100,x8=100,x9=100,x10=100;
    static int y=250;
    
    
    public static void main(String[] args)
    {
        BorderLayout br=new BorderLayout();
        frame.setLayout(br);
        frame.addWindowListener(save);
        frame.setTitle("投票计数器");
        frame.add(panel1,BorderLayout.NORTH);
        panel1.setBounds(0,0,500,10);
        panel1.add(label1);panel1.add(tf1);
        panel1.add(label2);panel1.add(tf2);
        panel1.add(label3);panel1.add(tf3);
        
        frame.add(panel2,BorderLayout.WEST);
        GridLayout gl=new GridLayout(10,1,0,3);
        panel2.setLayout(gl);
        panel2.add(cb1);
        panel2.add(cb2);
        panel2.add(cb3);
        panel2.add(cb4);
        panel2.add(cb5);
        panel2.add(cb6);
        panel2.add(cb7);
        panel2.add(cb8);
        panel2.add(cb9);
        panel2.add(cb10);
        
        frame.add(panel3,BorderLayout.SOUTH);
        panel3.setBounds(150,450,10,10);
        panel3.add(button1);
        panel3.add(button2);
        
        frame.add(panel4,BorderLayout.EAST);
        GridLayout gl1=new GridLayout(10,1,0,3);
        panel4.setLayout(gl1);
        panel4.add(label4);panel4.add(label5);panel4.add(label6);panel4.add(label7);panel4.add(label8);
        panel4.add(label9);panel4.add(label10);panel4.add(label11);panel4.add(label12);panel4.add(label13);
        label4.setForeground(new Color(0,0,255));label5.setForeground(new Color(0,0,255));
        label6.setForeground(new Color(0,0,255));label7.setForeground(new Color(0,0,255));
        label8.setForeground(new Color(0,0,255));label9.setForeground(new Color(0,0,255));
        label10.setForeground(new Color(0,0,255));label11.setForeground(new Color(0,0,255));
        label12.setForeground(new Color(0,0,255));label13.setForeground(new Color(0,0,255));
        
        frame.pack();
        frame.setLocation(400,300);
        //frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setResizable(false);
        
        tf1.setEditable(false);
        tf2.setEditable(false);
        tf3.setEditable(false);
        
        button1.addActionListener(frame);button2.addActionListener(frame);
        button3.addActionListener(frame);button4.addActionListener(frame);
        
        cb1.addItemListener(frame);cb2.addItemListener(frame);cb3.addItemListener(frame);
        cb4.addItemListener(frame);cb5.addItemListener(frame);cb6.addItemListener(frame);
        cb7.addItemListener(frame);cb8.addItemListener(frame);cb9.addItemListener(frame);
        cb10.addItemListener(frame);
        
        button1.setEnabled(false);
    }
    static class Save extends WindowAdapter
    {
        public void windowClosing(WindowEvent e)
        {
            dialog.setTitle("保存文件");
            dialog.setSize(200,100);
            dialog.add(button3);dialog.add(button4);
            dialog.setLayout(new FlowLayout(FlowLayout.CENTER,5,30));
            dialog.setLocation(400,300);
            dialog.setVisible(true);
        }
    }

解决方案 »

  1.   

    (下)
    public void itemStateChanged(ItemEvent e)
        {
            if(count1>=1)//每个人至少投两个人
            {
                button1.setEnabled(true);
            }else{
                button1.setEnabled(false);
            }
            if(count1<5)//此投票计数器一个人只能投四票;count1:统计选人的数目;
            {
                if(cb1.isSelected())
                {
                    count1++;
                    cb1.setEnabled(true);
                }
                if(cb2.isSelected())
                {
                    count1++;
                    cb2.setEnabled(true);
                }
                if(cb3.isSelected())
                {
                    count1++;
                    cb2.setEnabled(true);
                }
                if(cb4.isSelected())
                {
                    count1++;
                    cb4.setEnabled(true);
                }
                if(cb5.isSelected())
                {
                    count1++;
                    cb5.setEnabled(true);
                }
                if(cb6.isSelected())
                {
                    count1++;
                    cb6.setEnabled(true);
                }
                if(cb7.isSelected())
                {
                    count1++;
                    cb7.setEnabled(true);
                }
                if(cb8.isSelected())
                {
                    count1++;
                    cb8.setEnabled(true);
                }
                if(cb9.isSelected())
                {
                    count1++;
                    cb9.setEnabled(true);
                }
                if(cb10.isSelected())
                {
                    count1++;
                    cb10.setEnabled(true);
                }
                
            }else{
                count1=0;
                if(cb1.isSelected())
                {
                    cb1.setEnabled(true);
                }else{
                    cb1.setEnabled(false);
                }
                if(cb2.isSelected())
                {
                    cb2.setEnabled(true);
                }else{
                    cb2.setEnabled(false);
                }
                if(cb3.isSelected())
                {
                    cb3.setEnabled(true);
                }else{
                    cb3.setEnabled(false);
                }
                if(cb4.isSelected())
                {
                    cb4.setEnabled(true);
                }else{
                    cb4.setEnabled(false);
                }
                if(cb5.isSelected())
                {
                    cb5.setEnabled(true);
                }else{
                    cb5.setEnabled(false);
                }
                if(cb6.isSelected())
                {
                    cb6.setEnabled(true);
                }else{
                    cb6.setEnabled(false);
                }
                if(cb7.isSelected())
                {
                    cb7.setEnabled(true);
                }else{
                    cb7.setEnabled(false);
                }
                if(cb8.isSelected())
                {
                    cb8.setEnabled(true);
                }else{
                    cb8.setEnabled(false);
                }
                if(cb9.isSelected())
                {
                    cb9.setEnabled(true);
                }else{
                    cb9.setEnabled(false);
                }
                if(cb10.isSelected())
                {
                    cb10.setEnabled(true);
                }else{
                    cb10.setEnabled(false);
                }
            }
        }
      

  2.   

    (接上)
    public void actionPerformed(ActionEvent e)
        {
            JButton button=(JButton)e.getSource();
            if(button==button1)
            {
                button1.setEnabled(false);
                count++ ;//参加投票的人数
                tf1.setText(""+count);
                
                Graphics g=getGraphics();
                g.setColor(Color.GREEN);
                if(cb1.isSelected())
                {
                    g.fillRect(x1,70,1,15);
                    x1++;
                }
                if(cb2.isSelected())
                {
                    g.fillRect(x2,98,1,15);
                    x2++;
                }
                if(cb3.isSelected())
                {
                    g.fillRect(x3,126,1,15);
                    x3++;
                }
                if(cb4.isSelected())
                {
                    g.fillRect(x4,158,1,15);
                    x4++;
                }
                if(cb5.isSelected())
                {
                    g.fillRect(x5,188,1,15);
                    x5++;
                }
                if(cb6.isSelected())
                {
                    g.fillRect(x6,218,1,15);
                    x6++;
                }
                if(cb7.isSelected())
                {
                    g.fillRect(x7,y,1,15);
                    x7++;
                }
                if(cb8.isSelected())
                {
                    g.fillRect(x8,278,1,15);
                    x8++;
                }
                if(cb9.isSelected())
                {
                    g.fillRect(x9,308,1,15);
                    x9++;
                }
                if(cb10.isSelected())
                {
                    g.fillRect(x10,338,1,15);
                    x10++;
                }
                int array[]={x1-100,x2-100,x3-100,x4-100,x5-100,x6-100,x7-100,x8-100,x9-100,x10-100};
                label4.setText(array[0] +"票");
                label5.setText(array[1] +"票");
                label6.setText(array[2] +"票");
                label7.setText(array[3] +"票");
                label8.setText(array[4] +"票");
                label9.setText(array[5] +"票");
                label10.setText(array[6] +"票");
                label11.setText(array[7] +"票");
                label12.setText(array[8] +"票");
                label13.setText(array[9] +"票");
                
                java.util.Arrays.sort(array);//排序,从小到大;
                tf3.setText("" +array[9]);
                if(array[9]==(x1-100))
                {
                    tf2.setText("A");
                }
                if(array[9]==(x2-100))
                {
                    tf2.setText("B");
                }
                if(array[9]==(x3-100))
                {
                    tf2.setText("C");
                }
                if(array[9]==(x4-100))
                {
                    tf2.setText("D");
                }
                if(array[9]==(x5-100))
                {
                    tf2.setText("E");
                }
                if(array[9]==(x6-100))
                {
                    tf2.setText("F");
                }
                if(array[9]==(x7-100))
                {
                    tf2.setText("G");
                }
                if(array[9]==(x8-100))
                {
                    tf2.setText("H");
                }
                if(array[9]==(x9-100))
                {
                    tf2.setText("I");
                }
                if(array[9]==(x10-100))
                {
                    tf2.setText("J");
                }
                if(array[9]==array[8]||array[9]==array[7]||array[9]==array[6]||array[9]==array[5]||
                        array[9]==array[4]||array[9]==array[3]||array[9]==array[2]||array[9]==array[1]||
                        array[9]==array[0])
                {
                    tf2.setText("并列第一,如下图");
                }
                //
                if(cb1.isSelected()){
                cb1.setEnabled(true);
                }else {
                 cb1.setEnabled(false);
                }
                if(cb2.isSelected()){
                cb2.setEnabled(true);
                }else {
                 cb2.setEnabled(false);
                }
                if(cb3.isSelected()){
                cb3.setEnabled(true);
                }else {
                 cb3.setEnabled(false);
                }
                if(cb4.isSelected()){
                cb4.setEnabled(true);
                }else {
                 cb4.setEnabled(false);
                }
                if(cb5.isSelected()){
                cb5.setEnabled(true);
                }else {
                 cb5.setEnabled(false);
                }
                if(cb6.isSelected()){
                cb6.setEnabled(true);
                }else {
                 cb6.setEnabled(false);
                }
                if(cb7.isSelected()){
                cb7.setEnabled(true);
                }else {
                cb7.setEnabled(false);
                }
                if(cb8.isSelected()){
                cb8.setEnabled(true);
                }else {
                 cb8.setEnabled(false);
                }
                if(cb9.isSelected()){
                cb9.setEnabled(true);
                }else {
                 cb9.setEnabled(false);
                }
                if(cb10.isSelected()){
                cb10.setEnabled(true);
                }else {
                 cb10.setEnabled(false);
                }
            }else if(button==button2){
                cb1.setSelected(false);cb2.setSelected(false);cb3.setSelected(false);cb4.setSelected(false);
                cb5.setSelected(false);cb6.setSelected(false);cb7.setSelected(false);cb8.setSelected(false);
                cb9.setSelected(false);cb10.setSelected(false);
                cb1.setEnabled(true);cb2.setEnabled(true);cb3.setEnabled(true);cb4.setEnabled(true);
                cb5.setEnabled(true);cb6.setEnabled(true);cb7.setEnabled(true);cb8.setEnabled(true);
                cb9.setEnabled(true);cb10.setEnabled(true);
            }else if(button==button3){
                JFileChooser jf=new JFileChooser();
                jf.showSaveDialog(SelectionDemo.this);
                String filename=jf.getSelectedFile().getAbsolutePath().trim();
                FileWriter fw;
                BufferedWriter bw;
                try{
                    fw=new FileWriter(filename  +".txt");
                    bw=new BufferedWriter(fw);
                    String array[]={cb1.getText(),":",label4.getText(),"\r\n",cb2.getText(),":",label5.getText(),"\r\n"
                            ,cb3.getText(),":",label6.getText(),"\r\n",cb4.getText(),":",label7.getText(),"\r\n",
                            cb5.getText(),":",label8.getText(),"\r\n",cb6.getText(),":",label9.getText(),"\r\n",
                            cb7.getText(),":",label10.getText(),"\r\n",cb8.getText(),":",label11.getText(),"\r\n",
                            cb9.getText(),":",label12.getText(),"\r\n",cb10.getText(),":",label13.getText()
                    };
                    
                    for(int i=0;i<array.length;i++)
                    {
                        fw.write(array[i]);
                    }
                    fw.close();
                    JOptionPane.showMessageDialog(null,"保存成功");
                    dialog.dispose();
                }catch(IOException ioe)
                {
                    JOptionPane.showMessageDialog(null,"保存失败");
                }
            }else if(button==button4){
                dialog.dispose();
            }
        }
        
    }
      

  3.   

    保存的.txt中有乱码:"票"字显示乱码.