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("王");//注意输出编码 static JCheckBox cb2=new JCheckBox("李"); 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); } } 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); } } } 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]+ "P"); label7.setText(array[3]+ "P"); label8.setText(array[4]+ "P"); label9.setText(array[5]+ "P"); label10.setText(array[6]+ "P"); label11.setText(array[7]+ "P"); label12.setText(array[8]+ "P"); label13.setText(array[9]+ "P"); 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(); } } }