import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class abc extends JFrame{
c a1 = new c();
public abc(){
super("Demo");
this.setSize(300,300);
this.setContentPane(a1);
this.setVisible(true);
}
public static void main(String args[]){
abc z = new abc();
}
}
class c extends JPanel{
JComboBox combo1 = new JComboBox();
JComboBox combo2 = new JComboBox();
JComboBox combo3 = new JComboBox();

public c(){
combo1.addItem("1");
combo1.addItem("2");
this.add(combo1);
this.add(combo2);
this.add(combo3);

combo1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){

combo2.removeAllItems();
if(combo1.getSelectedItem().equals("1")){


combo2.addItem("1.1");
}

if(combo1.getSelectedItem().equals("2")){

combo2.addItem("2.2");
}
}
});

combo2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){

combo3.removeAllItems();
if(combo2.getSelectedItem().equals("1.1")){

combo3.addItem("1.1.1");

}

if(combo2.getSelectedItem().equals("2.2")){

combo3.addItem("2.2.2");
}
}
});
}

}

解决方案 »

  1.   

    equals 改为 ==
    addItem和removeAllItem冲突
      

  2.   

    package com.borland.samples.welcome;import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class abc
        extends JFrame {
      c a1 = new c();
      public abc() {
        super("Demo");
        this.setSize(300, 300);
        this.setContentPane(a1);
        this.setVisible(true);
      }  public static void main(String args[]) {
        abc z = new abc();
      }
    }class c
        extends JPanel {
      JComboBox combo1 = new JComboBox();
      JComboBox combo2 = new JComboBox();
      JComboBox combo3 = new JComboBox();  public c() {
        combo1.addItem("1");
        combo1.addItem("2");
        this.add(combo1);
        this.add(combo2);
        this.add(combo3);    combo1.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent evt) {        combo2.removeAllItems();
            if ("1".equals(combo1.getSelectedItem())) {
              combo2.addItem("1.1");
            }        if ("2".equals(combo1.getSelectedItem())) {
              combo2.addItem("2.2");
            }
          }
        });    combo2.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent evt) {
            combo3.removeAllItems();
            if ("1.1".equals(combo2.getSelectedItem())) {
              combo3.addItem("1.1.1");
            }        if ("2.2".equals(combo2.getSelectedItem())) {
              combo3.addItem("2.2.2");
            }
          }
        });
      }
    }
      

  3.   


    myhotsun(科科)和zhouqi724(J2EE不过如此!!!) 说得都有一部分道理,但最好理解透equals()和==的区别对基本类型的比较equals()比较的是对象的内容(值),==比较的是对象的内存地址以后再怎么变用这个一套都OK了的