我开发过程中遇到此问题,是一个修改功能页面(增删改查),上有个JList。点【修改】弹出此页面,从库中查询出数据,并将库中的数据对应到JList为选中状态,比如说,JList中有1,2,3三项,现在库中是2,那么将JList的2设置为选中状态。大概代码如下JList JL = new JList()中间填充数据JL.setSelectIndex(1); ///不起作用;JL.setSelectValue(2);//此处我加的是个对象BEAN,上面填充时也是循环加入bean的//JL.repaint();     //这两个结合使用都不行
//JL.UpDateUI();    //这两个结合使用都不行求大侠告诉我该怎么做,是不是应该此JList嵌套在两层JPanel中的原因?

解决方案 »

  1.   

    你能编译过吗?方法名不对啊 setSelectedIndex 肯定可行啊
    setSelectedIndex(int idx)
    import javax.swing.*;public class TestJList extends JFrame {
       public TestJList() {
          JPanel panel = new JPanel();
          JList list = new JList();
          DefaultListModel model = new DefaultListModel();
          model.addElement("row 1");
          model.addElement("row 2");
          model.addElement("row 3");
          list.setModel(model);
          panel.add(list);
          add(panel);
          
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setSize(400, 400);
          setVisible(true);
          list.setSelectedIndex(2);
       }
       
       public static void main(String[] args) {
          new TestJList();
       }
    }
      

  2.   

    setSelectIndex
    setSelectedIndex?寫錯?
      

  3.   

    setSelectedIndex
    public void setSelectedIndex(int index)选择单个单元。如果给定索引大于等于模型大小,则不执行任何操作。此方法是在选择模型上使用 setSelectionInterval 的便捷方法。有关如何处理小于 0 的值的详细信息,请参阅所用选择模型类的文档。 参数:
    index - 要选择的单元的索引
    另请参见:
    ListSelectionModel.setSelectionInterval(int, int), isSelectedIndex(int), addListSelectionListener(javax.swing.event.ListSelectionListener)
      

  4.   

    不好意思各位,是我自己搞错了,我先选择选中,后加载数据了,居然没报错,顺序换过来后就好了,但是有个问题还是没解决,jl.setSelectValue(1),1的位置我填的一个BEAN,数据填充的时候也是BEAN,这样的时候选中状态出不来,但是jl.setSelectedIndex(1)的时候选中可以出来(此处的1我填写的序号)。jl.setSelectValue()这个到底该怎么用才能选中。搞定这个立马结贴!!
      

  5.   

    我不知道什么叫BEAN,但是我觉得
    jl.setSelectedValue( Object object );
    add的对象和select的对象要是同一个引用。