各位大侠帮忙解决一下,刚开始学 实在不知怎样改了,貌似是数组有问题代码太繁琐,部分省略...import 省略
public class Questioner extends JFrame implements ActionListener, ItemListener {
/**
*
*/
private static final long serialVersionUID = 1L; private JPanel panel1, panel2, panel3, panel4, panel5; private JLabel label;
private JButton button1, button2, button3, button4; private JRadioButton[] radio = new JRadioButton[5]; private JTextField field; private int i, j,k, m = 1,n=1; private String num1, num2,num3; //private boolean hasSeclted = true; private boolean isA = false, isB = false, isC = false, isD = false,
isE = false;
private int[][] results;
public Questioner() {
num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3 = JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
if (i < 1 || j < 1||k<1) {
JOptionPane.showMessageDialog(this, "输入错误!请重新输入");
num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3=JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
}
for(int x=0;x<i;x++){
results=new int[x][];
for(int y=0;y<i;y++){
results[y]=new int[5];
}
}
for(int x=0;x<i;x++){
for(int y=0;y<5;y++){
results[x][y]=0;
}
}
field = new JTextField();
field.setFont(new java.awt.Font("Dialog", 1, 18));
field.setText("第 1 参与者第 " + 1 + " 道题投票:");
field.setEditable(false);
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel4 = new JPanel();
panel5 = new JPanel();
panel4.setLayout(new GridLayout(1, 2));
label = new JLabel(" ");
panel2.setLayout(new GridLayout(6, 1));
button1 = new JButton("重置(R)");
button2 = new JButton("分析数据");
button3 = new JButton("确定(S)");
button4 = new JButton("退出(E)");
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
panel2.add(button3);
panel2.add(button1);
panel2.add(button2);
panel2.add(button4);
panel4.add(panel2);
panel4.add(panel5);
panel3.setLayout(new GridLayout(2, 1));
panel3.add(label);
panel3.add(panel4); radio[0] = new JRadioButton("A");
radio[1] = new JRadioButton("B");
radio[2] = new JRadioButton("C");
radio[3] = new JRadioButton("D");
radio[4] = new JRadioButton("E");
ButtonGroup group = new ButtonGroup();
for (int x = 0; x < 5; x++) {
radio[x].addItemListener(this);
group.add(radio[e]);
}
if (j == 1) {
radio[1].setVisible(false);
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
} if (j == 2) {
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 3) {
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 4) {
radio[4].setVisible(false);
}
panel1.setLayout(new GridLayout(6, 1));
panel1.add(field);
for (int x = 0; x < 5; x++)
panel1.add(radio[x]);
Container contentPane = getContentPane();
contentPane.setLayout(new GridLayout(1, 2));
contentPane.add(panel1);
contentPane.add(panel3); }
主方法省。 public void actionPerformed(ActionEvent arg) {
// TODO Auto-generated method stub
//i 题目 j选项 k人数 n=1
if (arg.getActionCommand().equals("确定(S)")) {
if(n<=k){
if (m < i) {
// hasSeclted=true;
m++;
field.setText("第 "+n+"个参与者 第 " + m + " 题 选项:");
isA = false;
isB = false;
isC = false;
isD = false;
isE = false;
if(m==i){
n++;
m=1;
}
}
}else {
button3.setEnabled(false);
for (int x = 0; x < 5; x++) {
radio[x].setEnabled(false);
}
JOptionPane.showMessageDialog(this, "统计完成!");
}
}
if (arg.getSource() == button1) {
this.dispose();
Questioner que = new Questioner();
que.setSize(500, 500);
que.setVisible(true);
que.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
if (arg.getActionCommand().equals("分析数据")) {
if (results[0][0] == 0 && results[0][1] == 0 && results[0][2] == 0 && results[0][3] == 0 && results[0][4] == 0) {
JOptionPane.showMessageDialog(this, "没做任何选择!");
} else {
DecimalFormat myformat = null;
myformat = (DecimalFormat) NumberFormat.getPercentInstance();
myformat.applyPattern("00.00%");
int sum = results[0][0] + results[0][1] + results[0][2] + results[0][3] + results[0][4];
for(int x=0;x<i;x++){
double a1 = this.results[x][0];
double b1 = this.results[x][1];
double c1 = this.results[x][2];
double d1 = this.results[x][3];
double e1 = this.results[x][4];
double a = a1 / sum;
double b = b1 / sum;
double c = c1 / sum;
double d = d1 / sum;
double e = e1 / sum;
try {
PrintWriter write=new PrintWriter(new FileOutputStream("write.txt",false));
write.println("被调查人数: "+sum+"\n\t"+"第 "+e+1+" 题:"+" A选项: " + myformat.format(a) + "\n\t" + " B选项: "
+ myformat.format(b) + "\n\t" + " C选项: "
+ myformat.format(c) + "\n\t" + " D选项: "
+ myformat.format(d) + "\n\t" + " E选项: "
+ myformat.format(e));
write.close();
} catch (FileNotFoundException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
}
}
}
if (arg.getActionCommand().equals("退出(E)")) {
System.exit(0);
}
}
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
if (radio[0].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][0];
isA = true;
// hasSeclted=false;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][0]++;
isB = false;
isA = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][0]++;
isC = false;
isA = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][0]++;
isD = false;
isA = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][0]++;
isE = false;
isA = true;
} else if (isA == true) {
isA = true;
}
}
if (radio[1].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][1];
isB = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][1]++;
isA = false;
isB = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][1]++;
isC = false;
isB = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][1]++;
isD = false;
isB = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][1]++;
isE = false;
isB = true;
} else if (isB == true) {
isB = true;
}
}
if (radio[2].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][2];
isC = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][2]++;
isA = false;
isC = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][2]++;
isB = false;
isC = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][2]++;
isD = false;
isC = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][2]++;
isE = false;
isC = true;
} else if (isC == true) {
isC = true;
}
}
if (radio[3].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][3];
isD = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][3]++;
isA = false;
isD = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][3]++;
isB = false;
isD = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][3]++;
isC = false;
isD = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][3]++;
isE = false;
isD = true;
} else if (isD == true) {
isD = true;
}
}
if (radio[4].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][4];
isE = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][4]++;
isA = false;
isE = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][4]++;
isB = false;
isE = true; } else if (isC == true) {
results[m-1][2]--;
results[m-1][4]++;
isC = false;
isE = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][4]++;
isD = false;
isE = true;
} else if (isE == true) {
isE = true;
}
}
}
}
public class Questioner extends JFrame implements ActionListener, ItemListener {
/**
*
*/
private static final long serialVersionUID = 1L; private JPanel panel1, panel2, panel3, panel4, panel5; private JLabel label;
private JButton button1, button2, button3, button4; private JRadioButton[] radio = new JRadioButton[5]; private JTextField field; private int i, j,k, m = 1,n=1; private String num1, num2,num3; //private boolean hasSeclted = true; private boolean isA = false, isB = false, isC = false, isD = false,
isE = false;
private int[][] results;
public Questioner() {
num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3 = JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
if (i < 1 || j < 1||k<1) {
JOptionPane.showMessageDialog(this, "输入错误!请重新输入");
num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3=JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
}
for(int x=0;x<i;x++){
results=new int[x][];
for(int y=0;y<i;y++){
results[y]=new int[5];
}
}
for(int x=0;x<i;x++){
for(int y=0;y<5;y++){
results[x][y]=0;
}
}
field = new JTextField();
field.setFont(new java.awt.Font("Dialog", 1, 18));
field.setText("第 1 参与者第 " + 1 + " 道题投票:");
field.setEditable(false);
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel4 = new JPanel();
panel5 = new JPanel();
panel4.setLayout(new GridLayout(1, 2));
label = new JLabel(" ");
panel2.setLayout(new GridLayout(6, 1));
button1 = new JButton("重置(R)");
button2 = new JButton("分析数据");
button3 = new JButton("确定(S)");
button4 = new JButton("退出(E)");
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
panel2.add(button3);
panel2.add(button1);
panel2.add(button2);
panel2.add(button4);
panel4.add(panel2);
panel4.add(panel5);
panel3.setLayout(new GridLayout(2, 1));
panel3.add(label);
panel3.add(panel4); radio[0] = new JRadioButton("A");
radio[1] = new JRadioButton("B");
radio[2] = new JRadioButton("C");
radio[3] = new JRadioButton("D");
radio[4] = new JRadioButton("E");
ButtonGroup group = new ButtonGroup();
for (int x = 0; x < 5; x++) {
radio[x].addItemListener(this);
group.add(radio[e]);
}
if (j == 1) {
radio[1].setVisible(false);
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
} if (j == 2) {
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 3) {
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 4) {
radio[4].setVisible(false);
}
panel1.setLayout(new GridLayout(6, 1));
panel1.add(field);
for (int x = 0; x < 5; x++)
panel1.add(radio[x]);
Container contentPane = getContentPane();
contentPane.setLayout(new GridLayout(1, 2));
contentPane.add(panel1);
contentPane.add(panel3); }
主方法省。 public void actionPerformed(ActionEvent arg) {
// TODO Auto-generated method stub
//i 题目 j选项 k人数 n=1
if (arg.getActionCommand().equals("确定(S)")) {
if(n<=k){
if (m < i) {
// hasSeclted=true;
m++;
field.setText("第 "+n+"个参与者 第 " + m + " 题 选项:");
isA = false;
isB = false;
isC = false;
isD = false;
isE = false;
if(m==i){
n++;
m=1;
}
}
}else {
button3.setEnabled(false);
for (int x = 0; x < 5; x++) {
radio[x].setEnabled(false);
}
JOptionPane.showMessageDialog(this, "统计完成!");
}
}
if (arg.getSource() == button1) {
this.dispose();
Questioner que = new Questioner();
que.setSize(500, 500);
que.setVisible(true);
que.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
if (arg.getActionCommand().equals("分析数据")) {
if (results[0][0] == 0 && results[0][1] == 0 && results[0][2] == 0 && results[0][3] == 0 && results[0][4] == 0) {
JOptionPane.showMessageDialog(this, "没做任何选择!");
} else {
DecimalFormat myformat = null;
myformat = (DecimalFormat) NumberFormat.getPercentInstance();
myformat.applyPattern("00.00%");
int sum = results[0][0] + results[0][1] + results[0][2] + results[0][3] + results[0][4];
for(int x=0;x<i;x++){
double a1 = this.results[x][0];
double b1 = this.results[x][1];
double c1 = this.results[x][2];
double d1 = this.results[x][3];
double e1 = this.results[x][4];
double a = a1 / sum;
double b = b1 / sum;
double c = c1 / sum;
double d = d1 / sum;
double e = e1 / sum;
try {
PrintWriter write=new PrintWriter(new FileOutputStream("write.txt",false));
write.println("被调查人数: "+sum+"\n\t"+"第 "+e+1+" 题:"+" A选项: " + myformat.format(a) + "\n\t" + " B选项: "
+ myformat.format(b) + "\n\t" + " C选项: "
+ myformat.format(c) + "\n\t" + " D选项: "
+ myformat.format(d) + "\n\t" + " E选项: "
+ myformat.format(e));
write.close();
} catch (FileNotFoundException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
}
}
}
if (arg.getActionCommand().equals("退出(E)")) {
System.exit(0);
}
}
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
if (radio[0].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][0];
isA = true;
// hasSeclted=false;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][0]++;
isB = false;
isA = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][0]++;
isC = false;
isA = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][0]++;
isD = false;
isA = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][0]++;
isE = false;
isA = true;
} else if (isA == true) {
isA = true;
}
}
if (radio[1].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][1];
isB = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][1]++;
isA = false;
isB = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][1]++;
isC = false;
isB = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][1]++;
isD = false;
isB = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][1]++;
isE = false;
isB = true;
} else if (isB == true) {
isB = true;
}
}
if (radio[2].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][2];
isC = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][2]++;
isA = false;
isC = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][2]++;
isB = false;
isC = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][2]++;
isD = false;
isC = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][2]++;
isE = false;
isC = true;
} else if (isC == true) {
isC = true;
}
}
if (radio[3].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][3];
isD = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][3]++;
isA = false;
isD = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][3]++;
isB = false;
isD = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][3]++;
isC = false;
isD = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][3]++;
isE = false;
isD = true;
} else if (isD == true) {
isD = true;
}
}
if (radio[4].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][4];
isE = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][4]++;
isA = false;
isE = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][4]++;
isB = false;
isE = true; } else if (isC == true) {
results[m-1][2]--;
results[m-1][4]++;
isC = false;
isE = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][4]++;
isD = false;
isE = true;
} else if (isE == true) {
isE = true;
}
}
}
}
/**
*
*/
private static final long serialVersionUID = 1L; private JPanel panel1, panel2, panel3, panel4, panel5; private JLabel label; private JButton button1, button2, button3, button4; private JRadioButton[] radio = new JRadioButton[5]; private JTextField field; private int i, j,k, m = 1,n=1; private String num1, num2,num3;
public class Questioner extends JFrame implements ActionListener, ItemListener {
/**
*
*/
private static final long serialVersionUID = 1L; private JPanel panel1, panel2, panel3, panel4, panel5; private JLabel label;
private JButton button1, button2, button3, button4; private JRadioButton[] radio = new JRadioButton[5]; private JTextField field; private int i, j,k, m = 1,n=1; private String num1, num2,num3; //private boolean hasSeclted = true; private boolean isA = false, isB = false, isC = false, isD = false,
isE = false;
private int[][] results;
public Questioner() {
num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3 = JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
if (i < 1 || j < 1||k<1) {
JOptionPane.showMessageDialog(this, "输入错误!请重新输入");
num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3=JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
}
for(int x=0;x<i;x++){
results=new int[x][];
for(int y=0;y<i;y++){
results[y]=new int[5];
}
}
for(int x=0;x<i;x++){
for(int y=0;y<5;y++){
results[x][y]=0;
}
}
field = new JTextField();
field.setFont(new java.awt.Font("Dialog", 1, 18));
field.setText("第 1 参与者第 " + 1 + " 道题投票:");
field.setEditable(false);
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel4 = new JPanel();
panel5 = new JPanel();
panel4.setLayout(new GridLayout(1, 2));
label = new JLabel(" ");
panel2.setLayout(new GridLayout(6, 1));
button1 = new JButton("重置(R)");
button2 = new JButton("分析数据");
button3 = new JButton("确定(S)");
button4 = new JButton("退出(E)");
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
panel2.add(button3);
panel2.add(button1);
panel2.add(button2);
panel2.add(button4);
panel4.add(panel2);
panel4.add(panel5);
panel3.setLayout(new GridLayout(2, 1));
panel3.add(label);
panel3.add(panel4); radio[0] = new JRadioButton("A");
radio[1] = new JRadioButton("B");
radio[2] = new JRadioButton("C");
radio[3] = new JRadioButton("D");
radio[4] = new JRadioButton("E");
ButtonGroup group = new ButtonGroup();
for (int x = 0; x < 5; x++) {
radio[x].addItemListener(this);
group.add(radio[e]);
}
if (j == 1) {
radio[1].setVisible(false);
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
} if (j == 2) {
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 3) {
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 4) {
radio[4].setVisible(false);
}
panel1.setLayout(new GridLayout(6, 1));
panel1.add(field);
for (int x = 0; x < 5; x++)
panel1.add(radio[x]);
Container contentPane = getContentPane();
contentPane.setLayout(new GridLayout(1, 2));
contentPane.add(panel1);
contentPane.add(panel3); }
主方法省。 public void actionPerformed(ActionEvent arg) {
// TODO Auto-generated method stub
//i 题目 j选项 k人数 n=1
if (arg.getActionCommand().equals("确定(S)")) {
if(n<=k){
if (m < i) {
// hasSeclted=true;
m++;
field.setText("第 "+n+"个参与者 第 " + m + " 题 选项:");
isA = false;
isB = false;
isC = false;
isD = false;
isE = false;
if(m==i){
n++;
m=1;
}
}
}else {
button3.setEnabled(false);
for (int x = 0; x < 5; x++) {
radio[x].setEnabled(false);
}
JOptionPane.showMessageDialog(this, "统计完成!");
}
}
if (arg.getSource() == button1) {
this.dispose();
Questioner que = new Questioner();
que.setSize(500, 500);
que.setVisible(true);
que.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
if (arg.getActionCommand().equals("分析数据")) {
if (results[0][0] == 0 && results[0][1] == 0 && results[0][2] == 0 && results[0][3] == 0 && results[0][4] == 0) {
JOptionPane.showMessageDialog(this, "没做任何选择!");
} else {
DecimalFormat myformat = null;
myformat = (DecimalFormat) NumberFormat.getPercentInstance();
myformat.applyPattern("00.00%");
int sum = results[0][0] + results[0][1] + results[0][2] + results[0][3] + results[0][4];
for(int x=0;x<i;x++){
double a1 = this.results[x][0];
double b1 = this.results[x][1];
double c1 = this.results[x][2];
double d1 = this.results[x][3];
double e1 = this.results[x][4];
double a = a1 / sum;
double b = b1 / sum;
double c = c1 / sum;
double d = d1 / sum;
double e = e1 / sum;
try {
PrintWriter write=new PrintWriter(new FileOutputStream("write.txt",false));
write.println("被调查人数: "+sum+"\n\t"+"第 "+e+1+" 题:"+" A选项: " + myformat.format(a) + "\n\t" + " B选项: "
+ myformat.format(b) + "\n\t" + " C选项: "
+ myformat.format(c) + "\n\t" + " D选项: "
+ myformat.format(d) + "\n\t" + " E选项: "
+ myformat.format(e));
write.close();
} catch (FileNotFoundException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
}
}
}
if (arg.getActionCommand().equals("退出(E)")) {
System.exit(0);
}
}
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
if (radio[0].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][0];
isA = true;
// hasSeclted=false;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][0]++;
isB = false;
isA = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][0]++;
isC = false;
isA = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][0]++;
isD = false;
isA = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][0]++;
isE = false;
isA = true;
} else if (isA == true) {
isA = true;
}
}
if (radio[1].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][1];
isB = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][1]++;
isA = false;
isB = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][1]++;
isC = false;
isB = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][1]++;
isD = false;
isB = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][1]++;
isE = false;
isB = true;
} else if (isB == true) {
isB = true;
}
}
if (radio[2].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][2];
isC = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][2]++;
isA = false;
isC = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][2]++;
isB = false;
isC = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][2]++;
isD = false;
isC = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][2]++;
isE = false;
isC = true;
} else if (isC == true) {
isC = true;
}
}
if (radio[3].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][3];
isD = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][3]++;
isA = false;
isD = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][3]++;
isB = false;
isD = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][3]++;
isC = false;
isD = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][3]++;
isE = false;
isD = true;
} else if (isD == true) {
isD = true;
}
}
if (radio[4].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][4];
isE = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][4]++;
isA = false;
isE = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][4]++;
isB = false;
isE = true; } else if (isC == true) {
results[m-1][2]--;
results[m-1][4]++;
isC = false;
isE = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][4]++;
isD = false;
isE = true;
} else if (isE == true) {
isE = true;
}
}
}
}
不好意思啊 ...
public class Questioner extends JFrame implements ActionListener, ItemListener {
/**
*
*/
private static final long serialVersionUID = 1L; private JPanel panel1, panel2, panel3, panel4, panel5; private JLabel label; private JButton button1, button2, button3, button4; private JRadioButton[] radio = new JRadioButton[5]; private JTextField field; private int i, j,k, m = 1,n=1; private String num1, num2,num3; //private boolean hasSeclted = true; private boolean isA = false, isB = false, isC = false, isD = false,
isE = false;
private int[][] results; public Questioner() { num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3 = JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
if (i < 1 || j < 1||k <1) {
JOptionPane.showMessageDialog(this, "输入错误!请重新输入");
num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3=JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
}
for(int x=0;x <i;x++){
results=new int[x][];
for(int y=0;y <i;y++){
results[y]=new int[5];
}
} for(int x=0;x <i;x++){
for(int y=0;y <5;y++){
results[x][y]=0;
}
} field = new JTextField();
field.setFont(new java.awt.Font("Dialog", 1, 18));
field.setText("第 1 参与者第 " + 1 + " 道题投票:");
field.setEditable(false);
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel4 = new JPanel();
panel5 = new JPanel();
panel4.setLayout(new GridLayout(1, 2));
label = new JLabel(" ");
panel2.setLayout(new GridLayout(6, 1));
button1 = new JButton("重置(R)");
button2 = new JButton("分析数据");
button3 = new JButton("确定(S)");
button4 = new JButton("退出(E)");
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
panel2.add(button3);
panel2.add(button1);
panel2.add(button2);
panel2.add(button4);
panel4.add(panel2);
panel4.add(panel5);
panel3.setLayout(new GridLayout(2, 1));
panel3.add(label);
panel3.add(panel4); radio[0] = new JRadioButton("A");
radio[1] = new JRadioButton("B");
radio[2] = new JRadioButton("C");
radio[3] = new JRadioButton("D");
radio[4] = new JRadioButton("E");
ButtonGroup group = new ButtonGroup();
for (int x = 0; x < 5; x++) {
radio[x].addItemListener(this);
group.add(radio[e]);
}
if (j == 1) {
radio[1].setVisible(false);
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
} if (j == 2) {
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 3) {
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 4) {
radio[4].setVisible(false);
}
panel1.setLayout(new GridLayout(6, 1));
panel1.add(field);
for (int x = 0; x < 5; x++)
panel1.add(radio[x]);
Container contentPane = getContentPane(); contentPane.setLayout(new GridLayout(1, 2));
contentPane.add(panel1);
contentPane.add(panel3); }
主方法省。 public void actionPerformed(ActionEvent arg) {
// TODO Auto-generated method stub
//i 题目 j选项 k人数 n=1
if (arg.getActionCommand().equals("确定(S)")) {
if(n <=k){
if (m < i) {
// hasSeclted=true;
m++;
field.setText("第 "+n+"个参与者 第 " + m + " 题 选项:");
isA = false;
isB = false;
isC = false;
isD = false;
isE = false; if(m==i){
n++;
m=1;
}
}
}else { button3.setEnabled(false);
for (int x = 0; x < 5; x++) {
radio[x].setEnabled(false);
}
JOptionPane.showMessageDialog(this, "统计完成!"); }
}
if (arg.getSource() == button1) {
this.dispose();
Questioner que = new Questioner();
que.setSize(500, 500);
que.setVisible(true);
que.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
if (arg.getActionCommand().equals("分析数据")) {
if (results[0][0] == 0 && results[0][1] == 0 && results[0][2] == 0 && results[0][3] == 0 && results[0][4] == 0) {
JOptionPane.showMessageDialog(this, "没做任何选择!");
} else {
DecimalFormat myformat = null;
myformat = (DecimalFormat) NumberFormat.getPercentInstance();
myformat.applyPattern("00.00%");
int sum = results[0][0] + results[0][1] + results[0][2] + results[0][3] + results[0][4];
for(int x=0;x <i;x++){
double a1 = this.results[x][0];
double b1 = this.results[x][1];
double c1 = this.results[x][2];
double d1 = this.results[x][3];
double e1 = this.results[x][4];
double a = a1 / sum;
double b = b1 / sum;
double c = c1 / sum;
double d = d1 / sum;
double e = e1 / sum;
try {
PrintWriter write=new PrintWriter(new FileOutputStream("write.txt",false));
write.println("被调查人数: "+sum+"\n\t"+"第 "+e+1+" 题:"+" A选项: " + myformat.format(a) + "\n\t" + " B选项: "
+ myformat.format(b) + "\n\t" + " C选项: "
+ myformat.format(c) + "\n\t" + " D选项: "
+ myformat.format(d) + "\n\t" + " E选项: "
+ myformat.format(e));
write.close();
} catch (FileNotFoundException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
}
}
}
if (arg.getActionCommand().equals("退出(E)")) {
System.exit(0);
}
}
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
if (radio[0].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][0];
isA = true;
// hasSeclted=false;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][0]++;
isB = false;
isA = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][0]++;
isC = false;
isA = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][0]++;
isD = false;
isA = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][0]++;
isE = false;
isA = true;
} else if (isA == true) {
isA = true;
}
}
if (radio[1].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][1];
isB = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][1]++;
isA = false;
isB = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][1]++;
isC = false;
isB = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][1]++;
isD = false;
isB = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][1]++;
isE = false;
isB = true;
} else if (isB == true) {
isB = true;
}
}
if (radio[2].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][2];
isC = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][2]++;
isA = false;
isC = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][2]++;
isB = false;
isC = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][2]++;
isD = false;
isC = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][2]++;
isE = false;
isC = true;
} else if (isC == true) {
isC = true;
}
}
if (radio[3].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][3];
isD = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][3]++;
isA = false;
isD = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][3]++;
isB = false;
isD = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][3]++;
isC = false;
isD = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][3]++;
isE = false;
isD = true;
} else if (isD == true) {
isD = true;
}
}
if (radio[4].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][4];
isE = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][4]++;
isA = false;
isE = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][4]++;
isB = false;
isE = true; } else if (isC == true) {
results[m-1][2]--;
results[m-1][4]++;
isC = false;
isE = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][4]++;
isD = false;
isE = true;
} else if (isE == true) {
isE = true;
}
}
}
}
不好意思啊 ...
public class Questioner extends JFrame implements ActionListener, ItemListener {
/**
*
*/
private static final long serialVersionUID = 1L; private JPanel panel1, panel2, panel3, panel4, panel5; private JLabel label; private JButton button1, button2, button3, button4; private JRadioButton[] radio = new JRadioButton[5]; private JTextField field; private int i, j,k, m = 1,n=1; private String num1, num2,num3; //private boolean hasSeclted = true; private boolean isA = false, isB = false, isC = false, isD = false,
isE = false;
private int[][] results; public Questioner() { num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3 = JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
if (i < 1 || j < 1||k <1) {
JOptionPane.showMessageDialog(this, "输入错误!请重新输入");
num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3=JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
}
for(int x=0;x <i;x++){
results=new int[x][];
for(int y=0;y <i;y++){
results[y]=new int[5];
}
} for(int x=0;x <i;x++){
for(int y=0;y <5;y++){
results[x][y]=0;
}
} field = new JTextField();
field.setFont(new java.awt.Font("Dialog", 1, 18));
field.setText("第 1 参与者第 " + 1 + " 道题投票:");
field.setEditable(false);
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel4 = new JPanel();
panel5 = new JPanel();
panel4.setLayout(new GridLayout(1, 2));
label = new JLabel(" ");
panel2.setLayout(new GridLayout(6, 1));
button1 = new JButton("重置(R)");
button2 = new JButton("分析数据");
button3 = new JButton("确定(S)");
button4 = new JButton("退出(E)");
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
panel2.add(button3);
panel2.add(button1);
panel2.add(button2);
panel2.add(button4);
panel4.add(panel2);
panel4.add(panel5);
panel3.setLayout(new GridLayout(2, 1));
panel3.add(label);
panel3.add(panel4); radio[0] = new JRadioButton("A");
radio[1] = new JRadioButton("B");
radio[2] = new JRadioButton("C");
radio[3] = new JRadioButton("D");
radio[4] = new JRadioButton("E");
ButtonGroup group = new ButtonGroup();
for (int x = 0; x < 5; x++) {
radio[x].addItemListener(this);
group.add(radio[e]);
}
if (j == 1) {
radio[1].setVisible(false);
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
} if (j == 2) {
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 3) {
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 4) {
radio[4].setVisible(false);
}
panel1.setLayout(new GridLayout(6, 1));
panel1.add(field);
for (int x = 0; x < 5; x++)
panel1.add(radio[x]);
Container contentPane = getContentPane(); contentPane.setLayout(new GridLayout(1, 2));
contentPane.add(panel1);
contentPane.add(panel3); }
主方法省。 public void actionPerformed(ActionEvent arg) {
// TODO Auto-generated method stub
//i 题目 j选项 k人数 n=1
if (arg.getActionCommand().equals("确定(S)")) {
if(n <=k){
if (m < i) {
// hasSeclted=true;
m++;
field.setText("第 "+n+"个参与者 第 " + m + " 题 选项:");
isA = false;
isB = false;
isC = false;
isD = false;
isE = false; if(m==i){
n++;
m=1;
}
}
}else { button3.setEnabled(false);
for (int x = 0; x < 5; x++) {
radio[x].setEnabled(false);
}
JOptionPane.showMessageDialog(this, "统计完成!"); }
}
if (arg.getSource() == button1) {
this.dispose();
Questioner que = new Questioner();
que.setSize(500, 500);
que.setVisible(true);
que.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
if (arg.getActionCommand().equals("分析数据")) {
if (results[0][0] == 0 && results[0][1] == 0 && results[0][2] == 0 && results[0][3] == 0 && results[0][4] == 0) {
JOptionPane.showMessageDialog(this, "没做任何选择!");
} else {
DecimalFormat myformat = null;
myformat = (DecimalFormat) NumberFormat.getPercentInstance();
myformat.applyPattern("00.00%");
int sum = results[0][0] + results[0][1] + results[0][2] + results[0][3] + results[0][4];
for(int x=0;x <i;x++){
double a1 = this.results[x][0];
double b1 = this.results[x][1];
double c1 = this.results[x][2];
double d1 = this.results[x][3];
double e1 = this.results[x][4];
double a = a1 / sum;
double b = b1 / sum;
double c = c1 / sum;
double d = d1 / sum;
double e = e1 / sum;
try {
PrintWriter write=new PrintWriter(new FileOutputStream("write.txt",false));
write.println("被调查人数: "+sum+"\n\t"+"第 "+e+1+" 题:"+" A选项: " + myformat.format(a) + "\n\t" + " B选项: "
+ myformat.format(b) + "\n\t" + " C选项: "
+ myformat.format(c) + "\n\t" + " D选项: "
+ myformat.format(d) + "\n\t" + " E选项: "
+ myformat.format(e));
write.close();
} catch (FileNotFoundException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
}
}
}
if (arg.getActionCommand().equals("退出(E)")) {
System.exit(0);
}
}
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
if (radio[0].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][0];
isA = true;
// hasSeclted=false;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][0]++;
isB = false;
isA = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][0]++;
isC = false;
isA = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][0]++;
isD = false;
isA = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][0]++;
isE = false;
isA = true;
} else if (isA == true) {
isA = true;
}
}
if (radio[1].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][1];
isB = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][1]++;
isA = false;
isB = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][1]++;
isC = false;
isB = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][1]++;
isD = false;
isB = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][1]++;
isE = false;
isB = true;
} else if (isB == true) {
isB = true;
}
}
if (radio[2].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][2];
isC = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][2]++;
isA = false;
isC = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][2]++;
isB = false;
isC = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][2]++;
isD = false;
isC = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][2]++;
isE = false;
isC = true;
} else if (isC == true) {
isC = true;
}
}
if (radio[3].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][3];
isD = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][3]++;
isA = false;
isD = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][3]++;
isB = false;
isD = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][3]++;
isC = false;
isD = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][3]++;
isE = false;
isD = true;
} else if (isD == true) {
isD = true;
}
}
if (radio[4].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][4];
isE = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][4]++;
isA = false;
isE = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][4]++;
isB = false;
isE = true; } else if (isC == true) {
results[m-1][2]--;
results[m-1][4]++;
isC = false;
isE = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][4]++;
isD = false;
isE = true;
} else if (isE == true) {
isE = true;
}
}
}
}
不好意思啊 ...
public class Questioner extends JFrame implements ActionListener, ItemListener {
/**
*
*/
private static final long serialVersionUID = 1L; private JPanel panel1, panel2, panel3, panel4, panel5; private JLabel label; private JButton button1, button2, button3, button4; private JRadioButton[] radio = new JRadioButton[5]; private JTextField field; private int i, j,k, m = 1,n=1; private String num1, num2,num3; //private boolean hasSeclted = true; private boolean isA = false, isB = false, isC = false, isD = false,
isE = false;
private int[][] results; public Questioner() { num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3 = JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
if (i < 1 || j < 1||k <1) {
JOptionPane.showMessageDialog(this, "输入错误!请重新输入");
num1 = JOptionPane.showInputDialog("请输入题目个数:");
num2 = JOptionPane.showInputDialog("请输入选项个数:");
num3=JOptionPane.showInputDialog("请输入参加调查的人数:");
i = Integer.parseInt(num1);
j = Integer.parseInt(num2);
k = Integer.parseInt(num3);
}
for(int x=0;x <i;x++){
results=new int[x][];
for(int y=0;y <i;y++){
results[y]=new int[5];
}
} for(int x=0;x <i;x++){
for(int y=0;y <5;y++){
results[x][y]=0;
}
} field = new JTextField();
field.setFont(new java.awt.Font("Dialog", 1, 18));
field.setText("第 1 参与者第 " + 1 + " 道题投票:");
field.setEditable(false);
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel4 = new JPanel();
panel5 = new JPanel();
panel4.setLayout(new GridLayout(1, 2));
label = new JLabel(" ");
panel2.setLayout(new GridLayout(6, 1));
button1 = new JButton("重置(R)");
button2 = new JButton("分析数据");
button3 = new JButton("确定(S)");
button4 = new JButton("退出(E)");
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
panel2.add(button3);
panel2.add(button1);
panel2.add(button2);
panel2.add(button4);
panel4.add(panel2);
panel4.add(panel5);
panel3.setLayout(new GridLayout(2, 1));
panel3.add(label);
panel3.add(panel4); radio[0] = new JRadioButton("A");
radio[1] = new JRadioButton("B");
radio[2] = new JRadioButton("C");
radio[3] = new JRadioButton("D");
radio[4] = new JRadioButton("E");
ButtonGroup group = new ButtonGroup();
for (int x = 0; x < 5; x++) {
radio[x].addItemListener(this);
group.add(radio[e]);
}
if (j == 1) {
radio[1].setVisible(false);
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
} if (j == 2) {
radio[2].setVisible(false);
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 3) {
radio[3].setVisible(false);
radio[4].setVisible(false);
}
if (j == 4) {
radio[4].setVisible(false);
}
panel1.setLayout(new GridLayout(6, 1));
panel1.add(field);
for (int x = 0; x < 5; x++)
panel1.add(radio[x]);
Container contentPane = getContentPane(); contentPane.setLayout(new GridLayout(1, 2));
contentPane.add(panel1);
contentPane.add(panel3); }
主方法省。 public void actionPerformed(ActionEvent arg) {
// TODO Auto-generated method stub
//i 题目 j选项 k人数 n=1
if (arg.getActionCommand().equals("确定(S)")) {
if(n <=k){
if (m < i) {
// hasSeclted=true;
m++;
field.setText("第 "+n+"个参与者 第 " + m + " 题 选项:");
isA = false;
isB = false;
isC = false;
isD = false;
isE = false; if(m==i){
n++;
m=1;
}
}
}else { button3.setEnabled(false);
for (int x = 0; x < 5; x++) {
radio[x].setEnabled(false);
}
JOptionPane.showMessageDialog(this, "统计完成!"); }
}
if (arg.getSource() == button1) {
this.dispose();
Questioner que = new Questioner();
que.setSize(500, 500);
que.setVisible(true);
que.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
if (arg.getActionCommand().equals("分析数据")) {
if (results[0][0] == 0 && results[0][1] == 0 && results[0][2] == 0 && results[0][3] == 0 && results[0][4] == 0) {
JOptionPane.showMessageDialog(this, "没做任何选择!");
} else {
DecimalFormat myformat = null;
myformat = (DecimalFormat) NumberFormat.getPercentInstance();
myformat.applyPattern("00.00%");
int sum = results[0][0] + results[0][1] + results[0][2] + results[0][3] + results[0][4];
for(int x=0;x <i;x++){
double a1 = this.results[x][0];
double b1 = this.results[x][1];
double c1 = this.results[x][2];
double d1 = this.results[x][3];
double e1 = this.results[x][4];
double a = a1 / sum;
double b = b1 / sum;
double c = c1 / sum;
double d = d1 / sum;
double e = e1 / sum;
try {
PrintWriter write=new PrintWriter(new FileOutputStream("write.txt",false));
write.println("被调查人数: "+sum+"\n\t"+"第 "+e+1+" 题:"+" A选项: " + myformat.format(a) + "\n\t" + " B选项: "
+ myformat.format(b) + "\n\t" + " C选项: "
+ myformat.format(c) + "\n\t" + " D选项: "
+ myformat.format(d) + "\n\t" + " E选项: "
+ myformat.format(e));
write.close();
} catch (FileNotFoundException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
}
}
}
if (arg.getActionCommand().equals("退出(E)")) {
System.exit(0);
}
}
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
if (radio[0].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][0];
isA = true;
// hasSeclted=false;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][0]++;
isB = false;
isA = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][0]++;
isC = false;
isA = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][0]++;
isD = false;
isA = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][0]++;
isE = false;
isA = true;
} else if (isA == true) {
isA = true;
}
}
if (radio[1].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][1];
isB = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][1]++;
isA = false;
isB = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][1]++;
isC = false;
isB = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][1]++;
isD = false;
isB = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][1]++;
isE = false;
isB = true;
} else if (isB == true) {
isB = true;
}
}
if (radio[2].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][2];
isC = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][2]++;
isA = false;
isC = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][2]++;
isB = false;
isC = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][2]++;
isD = false;
isC = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][2]++;
isE = false;
isC = true;
} else if (isC == true) {
isC = true;
}
}
if (radio[3].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][3];
isD = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][3]++;
isA = false;
isD = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][3]++;
isB = false;
isD = true;
} else if (isC == true) {
results[m-1][2]--;
results[m-1][3]++;
isC = false;
isD = true;
} else if (isE == true) {
results[m-1][4]--;
results[m-1][3]++;
isE = false;
isD = true;
} else if (isD == true) {
isD = true;
}
}
if (radio[4].isSelected() && hasSeclted == true) {
if (isA == false && isB == false && isC == false && isD == false
&& isE == false) {
++results[m-1][4];
isE = true;
// hasSeclted=false;
} else if (isA == true) {
results[m-1][0]--;
results[m-1][4]++;
isA = false;
isE = true;
} else if (isB == true) {
results[m-1][1]--;
results[m-1][4]++;
isB = false;
isE = true; } else if (isC == true) {
results[m-1][2]--;
results[m-1][4]++;
isC = false;
isE = true;
} else if (isD == true) {
results[m-1][3]--;
results[m-1][4]++;
isD = false;
isE = true;
} else if (isE == true) {
isE = true;
}
}
}
}
不好意思啊 ...
for(int x=0;x <i;x++){
results=new int[x][];
for(int y=0;y <i;y++){
results[y]=new int[5];
}
} 这段代码有问题,应该把results的初始化改成这样results=new int[i][];