主题:JCombox的一个小问题
heidonglgc
[专家分:1370] 发布于 2007-11-15 22:01:00
设item为ArrayList<String>类型的,并且不为空
我这样构造了一个JCombox(item.toArray()),并且这个JComboxx已经设置为可编辑的。
现在我遇到的问题,就是无论我选择哪一个元素时用getSelectedItem()方法获得都是第一元素的值。
请问有没人遇到过相似的问题?应该怎样才可获得编辑时的值和选择一个item的时候可以获得相应的值?先谢谢了!!
回复列表 (共7个回复)
沙发
justforfun626 [专家分:18460] 发布于 2007-11-15 22:34:00
Put your compilable and runnable code here, others might find the mistake you made real fast.
Thanks!
板凳
heidonglgc [专家分:1370] 发布于 2007-11-16 12:48:00
不必了,代码比较长了,要人在一大堆的代码上看,单是搞清清思路都很浪费时间。我想把主要的问题描述出来也便可以了!
另外,有没有些JCombox的实例可参考?
3 楼
justforfun626 [专家分:18460] 发布于 2007-11-16 13:13:00
All example code on this page are downloadable and runnable.
[url]http://java.sun.com/docs/books/tutorial/uiswing/examples/components/index.html#ComboBoxDemo[/url]
4 楼
justforfun626 [专家分:18460] 发布于 2007-11-16 13:15:00
Nobody will 在一大堆的代码上看! At least I will never 在一大堆的代码上看!
Compile it, run it, the problem will be shown immediately!
You description does not tell us anything!
Sorry!
5 楼
sjhlovejava [专家分:1690] 发布于 2007-11-16 14:55:00
agree!
6 楼
heidonglgc [专家分:1370] 发布于 2007-11-16 16:39:00
Thank you all, I 已经找到问题的根源了!
7 楼
chm51666 [专家分:240] 发布于 2007-11-16 16:42:00
应该是你的事件写错了 我写了一个小例子贴出来你看看~~
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class TestCombo extends JFrame implements ItemListener
{
JComboBox jcb;
JLabel jl=new JLabel("您选择了北京!!");
String name[]={"北京","上海","济南","泰安"};
TestCombo(String s)
{
super(s);
setSize(300,200);
setLocation(300,400);
jcb=new JComboBox(name);
jcb.setSelectedIndex(0);
jcb.setMaximumRowCount(4);
Container c=getContentPane();
c.setLayout(new FlowLayout());
c.add(jcb);
jcb.addItemListener(this);
c.add(jl);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void itemStateChanged(ItemEvent e)
{
if (e.getStateChange()==e.SELECTED)
{
jl.setText("您选择了"+name[jcb.getSelectedIndex()]);
}
}
public static void main(String args[])
{
new TestCombo("测试下拉列表框");
}
}
我来回复