如题。
// 三级联动
String[] oi ={"集团","学校"};
final String[][] oii = {
{"软件公司","生物科技公司"},
{"广东海洋大学","广东海洋寸金学院"}
};
final String[][][] oiii = {
{ {"分析组","开发组","测试组"},{"生产部","销售部"} },
{ {"行政机构","教学机构","科研机构","后勤机构"},{"政教处","后勤处"} }
}; // 一级机构下拉框
cb_orgI = new JComboBox(oi);
cb_orgI.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if(e.getSource().equals(cb_orgI)){
cb_orgII.removeAllItems();
int selected = cb_orgI.getSelectedIndex();
for(String value:oii[selected]){
cb_orgII.addItem(value);
}
}
}
});
cb_orgI.setBounds(111, 80, 112, 18);
getContentPane().add(cb_orgI);
// 二级分类下拉框
cb_orgII = new JComboBox(oii[0]);
cb_orgII.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
int i=0,j = 0;
if(e.getSource().equals(cb_orgII)){
cb_orgIII.removeAllItems();
}
Object selected1 = cb_orgII.getSelectedItem();
if(selected1.equals("软件公司")){
i=0;
j=0;
}
if(selected1.equals("生物科技公司")){
i=0;
j=1;
}
if(selected1.equals("广东海洋大学")){
i=1;
j=0;
}
if(selected1.equals("广东海洋寸金学院")){
i=1;
j=1;
}
for(String value:oiii[i][j]){
cb_orgIII.addItem(value);
}
}
});
cb_orgII.setBounds(343, 80, 112, 18);
getContentPane().add(cb_orgII);
// 三级机构下拉框
cb_orgIII = new JComboBox(oiii[0]);
cb_orgIII.setBounds(585, 80, 217, 18);
getContentPane().add(cb_orgIII);
// 三级联动
String[] oi ={"集团","学校"};
final String[][] oii = {
{"软件公司","生物科技公司"},
{"广东海洋大学","广东海洋寸金学院"}
};
final String[][][] oiii = {
{ {"分析组","开发组","测试组"},{"生产部","销售部"} },
{ {"行政机构","教学机构","科研机构","后勤机构"},{"政教处","后勤处"} }
}; // 一级机构下拉框
cb_orgI = new JComboBox(oi);
cb_orgI.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if(e.getSource().equals(cb_orgI)){
cb_orgII.removeAllItems();
int selected = cb_orgI.getSelectedIndex();
for(String value:oii[selected]){
cb_orgII.addItem(value);
}
}
}
});
cb_orgI.setBounds(111, 80, 112, 18);
getContentPane().add(cb_orgI);
// 二级分类下拉框
cb_orgII = new JComboBox(oii[0]);
cb_orgII.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
int i=0,j = 0;
if(e.getSource().equals(cb_orgII)){
cb_orgIII.removeAllItems();
}
Object selected1 = cb_orgII.getSelectedItem();
if(selected1.equals("软件公司")){
i=0;
j=0;
}
if(selected1.equals("生物科技公司")){
i=0;
j=1;
}
if(selected1.equals("广东海洋大学")){
i=1;
j=0;
}
if(selected1.equals("广东海洋寸金学院")){
i=1;
j=1;
}
for(String value:oiii[i][j]){
cb_orgIII.addItem(value);
}
}
});
cb_orgII.setBounds(343, 80, 112, 18);
getContentPane().add(cb_orgII);
// 三级机构下拉框
cb_orgIII = new JComboBox(oiii[0]);
cb_orgIII.setBounds(585, 80, 217, 18);
getContentPane().add(cb_orgIII);
解决方案 »
- 请教一个动态生成数组的问题。
- JSP+TOMCAT+SQL2000如何连接数据库。急急急~
- switch为什么只能用int,short,byte,char,而不能用long,String
- 谁有thinking in java 的 中文的最新版?
- 研究动态绑定。
- 各位大哥帮忙,进者有分
- 不知为何错误!输入字符传入setBackground(Color.white)设定颜色。帮忙!帮忙!
- 我用installanywhere为application做安装程序时,做带VM的安装程序时,安装后程序不能正确运行,将jsdk里的jre覆盖掉程序的安装目录中的j
- !!!又来了,,,,
- 为啥我想输出数组却出现了这个结果?
- JComboBox实现三级联动效果,不知出现什么错误,求指教?
- 熟悉kettle的进
1.在下面加个判断
Object selected1 = cb_orgII.getSelectedItem();
if(selected1 ==null)
{
return;
}
2.三级下拉框初始化应该是
cb_orgIII = new JComboBox(oiii[0][0]);
2.因为你removeAllItems的时候也会引起Items的改变,所以也会触发监听器,而remove后已经是null了,这时你还去用控件的getSelectedItem()方法,当然就会引起空指针异常了,所以你要时时注意监听器的触发条件。
3.你的布局管理要设成FlowLayout,要不然控件被挤在一起,第三个显示不出来。
4.我给你写了一个简单,没怎么用循环,你参考一下吧
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class JM extends JFrame
{
JComboBox cb1 , cb2 , cb3;
String[] s1 = {"集团" , "学校"};;
String[] s11 = {"第一集团" , "第二集团"};
String[] s111 = {"集集集"};
String[] s112 = {"团团团"}; String[] s21 = {"第一学校" , "第二学校"};
String[] s211 = {"学学学" , "校校校"};
String[] s212 = {"学校学校学校"}; public JM()
{
cb1 = new JComboBox();
cb2 = new JComboBox();
cb3 = new JComboBox();
for(String x : s1)
{
cb1.addItem(x);
}
for(String x : s11)
{
cb2.addItem(x);
}
for(String x : s111)
{
cb3.addItem(x);
} cb1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ie)
{
String[] insertArray = null; if(cb1.getSelectedItem().equals("集团"))
{
cb2.removeAllItems();
insertArray = s11;
}
if(cb1.getSelectedItem().equals("学校"))
{
cb2.removeAllItems();
insertArray = s21;
}
for(String x : insertArray)
{
cb2.addItem(x);
}
}
});
cb2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ie)
{
String[] insertArray = null;
if(cb2.getSelectedItem() != null)
{
if(cb2.getSelectedItem().equals("第一集团"))
{
cb3.removeAllItems();
insertArray = s111;
}
if(cb2.getSelectedItem().equals("第二集团"))
{
cb3.removeAllItems();
insertArray = s112;
}
if(cb2.getSelectedItem().equals("第一学校"))
{
cb3.removeAllItems();
insertArray = s211;
}
if(cb2.getSelectedItem().equals("第二学校"))
{
cb3.removeAllItems();
insertArray = s212;
}
for(String x : insertArray)
{
cb3.addItem(x);
}
}
}
});
setLayout(new FlowLayout());
add(cb1);
add(cb2);
add(cb3); setSize(600,300);
setLocation(100,100);
setVisible(true);
} public static void main(String[] args)
{
new JM();
}
}