gpt4 book ai didi

java - 使用值来触发 Jcombobox Action 监听器而不是 getselectedindex?

转载 作者:行者123 更新时间:2023-12-01 14:37:14 26 4
gpt4 key购买 nike

这是 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 作为值来触发 JCombobox 监听器而不是 getSelectedindex 任何帮助将不胜感激。

最佳答案

使用getSelectedItem()获取当前选中的ComboItem的引用,它的id;使用 getSelectedIndex() 获取其索引。

因为 setSelectedIndex() 会触发组合的 ActionListener、导航控件,例如 ⊲PrevNext⊳ 按钮可以委托(delegate)给组合,如图 here :

  • getSelectedIndex()获取索引

  • 增加或减少索引

  • 索引执行范围检查。

  • 通过 setSelectedIndex(index) 将选择委托(delegate)给组合。

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

for (int i = 0; i < dcbm.getSize(); i++) {
ComboItem item = (ComboItem) dcbm.getElementAt(i);
// check item
}

关于java - 使用值来触发 Jcombobox Action 监听器而不是 getselectedindex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16374742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com