Java 使用值触发Jcombobox actionlistener而不是getselectedindex?
这是Jcombobox,它有两个项目名称和idJava 使用值触发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
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
您询问了“上一个和下一个按钮”;还有兴趣吗?是的,谢谢你的回复