小弟初学者。我想在JComboBox框中选一个对象,然后在List框中显示相应的信息。如:在JComboBox框中有 “蔬菜”和“水果”俩项,那么我如果选中“水果”,在List框中显示“菠萝”,“橘子”,“苹果”。我主要是想通过ListModel方法来实现。谢谢高人指点
解决方案 »
- 会.net和java的进来看看 急!
- 关于jmx的疑问?
- 一百分求问,本人使用的是jdk1.4.2,现在急需jdk1.5的String的replace(CharSequence target, CharSequence replacement)函数;
- 请问数学与数据结构,算法对编程重要吗?
- 请教各位大哥lucene的问题,顶者有分!
- 请各位帮忙做个题目
- JAVA如何做美化
- 利用对象作为参数,得到阶乘的值
- 简单问题——applet中用相对路径设置JButton的Icon问题,在线给分
- JAVA初学者求入门书籍推荐
- 我用socket模拟了一个聊天系统,怎样在同一台机子上跑起来呢???
- 求救!!用加、减、乘、除计算3、3、8、8等于24
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import java.util.Vector;import javax.swing.*;public class Test extends JFrame { private JComboBox com = null; private String[] str = { "水果", "蔬菜" }; private JList list = null; private DataModel data = null; public Test() {
com = new JComboBox(str);
com.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
select();
}
});
data = new DataModel();
list = new JList(data);
this.select();
this.getContentPane().add(com, BorderLayout.NORTH);
this.getContentPane().add(list);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 200);
this.setVisible(true);
} public void select() {
if (com.getItemAt(com.getSelectedIndex()).equals("水果")) {
data.removeAll();
data.addData("苹果");
data.addData("西瓜");
data.addData("人参果");
}
if (com.getItemAt(com.getSelectedIndex()).equals("蔬菜")) {
data.removeAll();
data.addData("黄瓜");
data.addData("白菜");
data.addData("西葫芦");
}
list.updateUI();
} public static void main(String[] args) {
new Test();
}
}class DataModel extends AbstractListModel { private Vector data = null; public DataModel() {
data = new Vector();
} public DataModel(Object[] listData) {
data = new Vector();
for (int i = 0; i < listData.length; i++) {
data.add(listData[i]);
}
} public void addData(Object o) {
data.add(o);
} public void removeIndex(int index) {
data.remove(index);
} public void removeAll() {
data = new Vector();
} public int getSize() {
return data.size();
} public Object getElementAt(int index) {
return data.get(index);
}
}