Java 使用值触发Jcombobox actionlistener而不是getselectedindex?

Java 使用值触发Jcombobox actionlistener而不是getselectedindex?,java,swing,jdbc,jcombobox,Java,Swing,Jdbc,Jcombobox,这是Jcombobox,它有两个项目名称和id public void ComboItem() { chooser.removeAllItems(); chooser.addItem("Please Select..."); try { String sql="select * from Patients_Details"; pst = conn.prepareStatement(sql); rs=pst.executeQue

这是Jcombobox,它有两个项目名称和id

   public void ComboItem() {

chooser.removeAllItems();
chooser.addItem("Please Select...");
try {   

         String sql="select * from Patients_Details";
         pst = conn.prepareStatement(sql);
         rs=pst.executeQuery();

        while (rs.next()) {
            String id = rs.getString("Patient_ID"); // Get the Id
            String name = rs.getString("Name"); // Get the Name 

            ComboItem comboItem = new ComboItem(id, name); // Create a new ComboItem
            chooser.addItem(comboItem); // Put it into the ComboBox
            String tmp=comboItem.getid();
        }


    } catch (SQLException sqle) {
        System.out.println(sqle);
    }
Jcombobox ActionListener代码

private void chooserPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) {                                                     
    Object selectedValue = chooser.getSelectedIndex();

    try{


      String sql="select * from Patients_Details where Patient_ID=? ";
      pst=conn.prepareStatement(sql);
      pst.setObject(1, selectedValue);
      rs=pst.executeQuery();
      if(rs.next()){

      String add1=rs.getString("Patient_ID");
      txtpatientid.setText(add1);
      String add2=rs.getString("Name");
      txtname.setText(add2);
      String add3=rs.getString("Age");
      txtage.setText(add3);
      String add4=rs.getString("Gender");
      txtgender.setText(add4);
      String add7=rs.getString("Date");
      txtdate.setText(add7);

       }

  }

  catch(Exception e) {
    JOptionPane.showMessageDialog(null,e ); 
  }
}                     
我的问题是: 如何使用id作为值来启动JComboxListener而不是getSelectedindex,我们将不胜感激。

使用
getSelectedItem()
获取对当前选定的
组合项的引用,它是
id
;使用
getSelectedIndex()
获取其索引

因为
setSelectedIndex()
触发组合的
ActionListener
,所以导航控件⊲上下⊳ 按钮可以委托给组合,如图所示:

  • getSelectedIndex()
    获取
    索引

  • 增加或减少
    索引

  • 索引执行范围检查

  • 通过
    setSelectedIndex(index)
    将选择委派给组合

可以使用迭代搜索
ComboBoxModel
的特定实现,例如
DefaultComboxModel

for (int i = 0; i < dcbm.getSize(); i++) {
    ComboItem item = (ComboItem) dcbm.getElementAt(i);
    // check item
}
for(int i=0;i
您询问了“上一个和下一个按钮”;还有兴趣吗?是的,谢谢你的回复