是强人的帮小弟看一下程序,详细分析给我听,好嘛!

xinghua198709203515 2010-03-27 09:56:49
//ComboBoxText.java
import java.awt.*;
//import java.awt.FlowLayout;
import java.awt.event.*;
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
import javax.swing.*;
//import javax.swing.JComboBox;
//import javax.swing.JFrame;

class ComboBoxText extends Frame
{
private String[][] xxx = {
{"信息工程学院","软件工程","计算机科学与技术","电子信息工程","网络工程","通信工程","光信息科学与技术"},
{"外语外贸学院","英语","国际经济与贸易","日语"},
{"材料与化学工程学院","金属材料工程","冶金工程","稀土工程","无机非金属材料工程","化学工程与工艺","材料化学","生物工程","材料物理","材料成型及控制工程"},


{"机电工程学院","自动化","机械工程及自动化","电气工程及其自动化","测控技术与仪器","工业工程","交通工程","电子科学与技术"},
{"资源与环境工程学院","采矿工程","矿物加工工程","安全工程","环境工程","地质工程"},
{"文法学院","法学","政治学与行政学","艺术设计","工业设计","广告学","数字媒体艺术","对外汉语"},
{"经济管理学院","工程管理","会计学","工商管理","金融学","电子商务"},
{"理学院","信息与计算科学","数学与应用数学","电子信息科学与技术","社会体育"},
{"建筑与测绘工程学院","土木工程","测绘工程","地理信息系统","城市规划","给水排水工程","资源环境与城乡规划管理","建筑环境与设备工程"}
};

private Object[] a(){
Object[] os = new Object[xxx.length];
for(int i=0; i<xxx.length; i++){
os[i]=xxx[i][0];
}
return os;
}

private Object[] b(Object a){
for(int i=0; i<xxx.length; i++){
if(xxx[i][0].equals(a)){
Object[] o = new Object[xxx[i].length-1];
for(int j=0; j<o.length; j++)
o[j]=xxx[i][j+1];
return o;
}
}
return new Object[]{};
}


public static void main(String[] args)
{


final ComboBoxText ct = new ComboBoxText();
final JComboBox ca = new JComboBox(ct.a());
final JComboBox cb = new JComboBox();
ca.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
cb.removeAllItems();
Object selected = ca.getSelectedItem();
Object[] newItems = ct.b(selected);
for(int i=0; i<newItems.length; i++)
cb.addItem(newItems[i]);
}
});

ca.setSelectedIndex(-1);
JFrame f = new JFrame("江西理工大学查询系统");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel=new JPanel();
f.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));
f.add(ca);f.add(cb);f.setVisible(true);
f.setSize(400,400);

}
}

强人,如果你诚心的话,帮小弟把那红色的代码仔细看一下,并且详细的分析给我听,好嘛,
这段程序,我要搞清楚,因为本人正在编写相关类型的代码,
谢谢了!
...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
whlcy 2010-03-27
  • 打赏
  • 举报
回复
mark!!!!

up
!!!!!
llpoo 2010-03-27
  • 打赏
  • 举报
回复
记得要结贴啊,你的结贴率很让人有提醒的必要
llpoo 2010-03-27
  • 打赏
  • 举报
回复
private Object[] a(){//一个返回Object数组类型的方法
Object[] os = new Object[xxx.length];//定义一个数组,长度等于二维数组xxx的长度
for(int i=0; i<xxx.length; i++){//遍历xxx数组,该数组存储的是每个学院的专业情况
os[i]=xxx[i][0];//取出二维数组中每一维下标为0的值,即拿出所有学院的名字
}
return os;//最后返回记录了学院名字的数组os
}

private Object[] b(Object a)//一个返回Object数组类型的方法
{
for(int i=0; i<xxx.length; i++)//遍历XXX这个二维数组
{
if(xxx[i][0].equals(a))//取出二维数组中每一维下标为0的值并与传入的a的值做比较,如相等
{
//那么新建一个object类型的数组,长度等于XXX数组中每一维长度-1
Object[] o = new Object[xxx[i].length-1];
//给新建的数组赋值
for(int j=0; j<o.length; j++)
{
//所赋的值是XXX数组每一维下标从1开始的值,即每个学院的专业情况
o[j]=xxx[i][j+1];
//返回数组
return o;
}
}
}
return new Object[]{};//返回一个空的数组
}

ca.addActionListener(new ActionListener(){//给JComboBox 添加监听事件
public void actionPerformed(ActionEvent e) {
cb.removeAllItems();//清空cb的所有下拉项
Object selected = ca.getSelectedItem();//获取ca当前被选择的项,即获得一个学院名
//让ComboBoxText 执行b方法,即传入一个学院名得到该学院的专业情况
Object[] newItems = ct.b(selected);
//遍历所得到的专业情况,并填充到cb这个JComboBox 中
for(int i=0; i<newItems.length; i++)
cb.addItem(newItems[i]);
}
});

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧