import java.awt.*;import java.awt.event.*;
import javax.swing.*;import javax.swing.event.*;
public class A
{ public static void main(String args[]){B b=new B();}}
class B extends JFrame implements ItemListener
{
 String s1[]={"游泳","唱歌","旅游"};
  String s2[]={"男","女"};
JLabel l1 ,l2;
JCheckBox[] c;
JRadioButton b[];
ButtonGroup group;
JTextArea t;
JScrollPane scrollpane;
B ()
{
super("liZI");
Container con=getContentPane();
setLayout(new FlowLayout());
setSize(600,600);
c=new JCheckBox[3];
for(int i=0;i<3;i++) c[i]=new JCheckBox( s1[i]);
b=new JRadioButton[2];
for(int i=0;i<2;i++) b[i]=new JRadioButton(s2[i]);
l1=new JLabel("兴趣");l2=new JLabel("性别");
for(int i=0;i<3;i++)
c[i].addItemListener(this);
 for(int i=0;i<2;i++)
b[i].addItemListener(this);
group=new ButtonGroup();group.add(b[0]);group.add(b[1]);
t=new JTextArea(5,500);scrollpane=new JScrollPane(t);
for(int i=0;i<3;i++)
con.add(c[i]);
for(int i=0;i<2;i++)
con.add(b[i]);
con.add(scrollpane);setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void itemStateChanged(ItemEvent e)
{  
String ss="你的兴趣是:";
String sx="你的性别是:";
for(int i=0;i<3;i++)
                if(e.getSource()==c[i])  
                                           ss=ss+s1[i];    
 for(int j=0;j<2;j++)
if(e.getSource()==b[j]) 
sx=sx+s2[j];
     t.append("\n"+ss+sx);

   }
}
这个程序我想达到的效果是,在文本区中有用户选中的兴趣和爱好,可是在执行的时候只有界面而文本区中没有文字,请问这是怎么回事呢,程序哪里出错了呢

解决方案 »

  1.   


    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;public class A {
    public static void main(String args[]) {
    B b = new B();
    }
    }class B extends JFrame implements ItemListener {
    String s1[] = { "游泳", "唱歌", "旅游" };
    String s2[] = { "男", "女" };
    JLabel l1, l2;
    JCheckBox[] c;
    JRadioButton b[];
    ButtonGroup group;
    JTextArea t;
    JScrollPane scrollpane; B() {
    super("liZI");
    Container con = getContentPane();
    setLayout(new FlowLayout());
    setSize(600, 600);
    c = new JCheckBox[3];
    for (int i = 0; i < 3; i++)
    c[i] = new JCheckBox(s1[i]);
    b = new JRadioButton[2];
    for (int i = 0; i < 2; i++)
    b[i] = new JRadioButton(s2[i]);
    l1 = new JLabel("兴趣");
    l2 = new JLabel("性别");
    for (int i = 0; i < 3; i++)
    c[i].addItemListener(this);
    for (int i = 0; i < 2; i++)
    b[i].addItemListener(this);
    group = new ButtonGroup();
    group.add(b[0]);
    group.add(b[1]);
    t = new JTextArea(5, 50);// =================  here
    scrollpane = new JScrollPane(t);
    for (int i = 0; i < 3; i++)
    con.add(c[i]);
    for (int i = 0; i < 2; i++)
    con.add(b[i]);
    con.add(scrollpane);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    } public void itemStateChanged(ItemEvent e) {
    String ss = "你的兴趣是:";
    String sx = "你的性别是:";
    for (int i = 0; i < 3; i++)
    if (e.getSource() == c[i])
    ss = ss + s1[i];
    for (int j = 0; j < 2; j++)
    if (e.getSource() == b[j])
    sx = sx + s2[j];
    t.append("\n" + ss + sx); }
    }
    是你把TextArea设的太宽了,看不到而已。
    看了LZ的结贴率,提醒LZ记得结贴
      

  2.   


    public void itemStateChanged(ItemEvent e) {
    String ss = "你的兴趣是:";
    String sx = "你的性别是:";
    // for (int i = 0; i < 3; i++)
    // if (e.getSource() == c[i])
    // ss = ss + s1[i];
    // for (int j = 0; j < 2; j++)
    // if (e.getSource() == b[j])
    // sx = sx + s2[j];
    StringBuffer temp = new StringBuffer();
    for (int i = 0; i < 3; i++) {
    if (c[i].isSelected()) {
    temp.append(s1[i] + "、");
    }
    }
    ss = ss + temp;

    for (int i = 0; i < 2; i++) {
    if (b[i].isSelected()) {
    sx = sx + s2[i];
    }
    } // t.append("\n" + ss + sx);
    t.setText(ss + "\n" + sx);
    }
      

  3.   

    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;import javax.swing.ButtonGroup;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;public class A {
    public static void main(String args[]) {
    B b = new B();
    }
    }class B extends JFrame implements ActionListener {
    String s1[] = { "游泳", "唱歌", "旅游" };
    String s2[] = { "男", "女" };
    JLabel l1, l2;
    JCheckBox[] c;
    JRadioButton b[];
    ButtonGroup group;
    JTextArea t;
    JScrollPane scrollpane; B() {
    super("liZI");
    Container con = getContentPane();
    setLayout(new FlowLayout());
    setSize(600, 600);
    c = new JCheckBox[3];
    for (int i = 0; i < 3; i++)
    c[i] = new JCheckBox(s1[i]);
    b = new JRadioButton[2];
    for (int i = 0; i < 2; i++)
    b[i] = new JRadioButton(s2[i]);
    l1 = new JLabel("兴趣");
    l2 = new JLabel("性别");
    con.add(l1); for (int i = 0; i < 3; i++)
    c[i].addActionListener(this);
    for (int i = 0; i < 2; i++)
    b[i].addActionListener(this);
    group = new ButtonGroup();
    group.add(b[0]);
    group.add(b[1]);
    t = new JTextArea(5, 50);
    scrollpane = new JScrollPane(t);
    for (int i = 0; i < 3; i++)
    con.add(c[i]); con.add(l2);
    for (int i = 0; i < 2; i++)
    con.add(b[i]);
    con.add(scrollpane);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    } @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    String ss = "你的兴趣是:";
    String sx = "你的性别是:";
    // for (int i = 0; i < 3; i++)
    // if (e.getSource() == c[i])
    // ss = ss + s1[i];
    // for (int j = 0; j < 2; j++)
    // if (e.getSource() == b[j])
    // sx = sx + s2[j]; for (int i = 0; i < 3; i++) {
    if (c[i].isSelected()) {
    ss = ss + s1[i];
    }
    } for (int i = 0; i < 2; i++) {
    if (b[i].isSelected()) {
    sx = sx + s2[i];
    }
    }
    t.append("\n" + ss + sx);
    }}