作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个组合框,用于显示表列中的数据。
sql表包含2列:name - etat_syn
因此组合框显示名称的数据:
jComboBox3.removeAllItems();
try{
conn = DriverManager.getConnection("jdbc:mysql://localhost/etat", "root", "123456");
String sql = "SELECT * FROM pop;";
PreparedStatement prest = conn.prepareStatement(sql);
ResultSet res=prest.executeQuery();
while(res.next()){
if(Integer.parseInt(res.getString("etat_syn"))==0){
jComboBox3.addItem(res.getString("name")) ;
}
}
} catch (Exception e) {
System.out.println("ERROR :"+e.getMessage());
}
但我想对与列名称的选定行相对应的“etat_syn”列的索引进行测试
不知道可不可以
最佳答案
你的代码似乎有点困惑。您说您想要根据用户在 JComboBox 中选择的内容执行不同的操作,但您添加的只是 etat_syn 为 0 的行的名称。
if(Integer.parseInt(res.getString("etat_syn"))==0){
jComboBox3.addItem(res.getString("name")) ;
}
因此,在您的情况下,无论您选择哪个项目,该项目的 etat_syn 值始终为零。
我认为(虽然我猜测,你需要如下所示的东西:
while(res.next()){
jComboBox3.addItem(res.getString("name")) ;
jComboBox3.setActionCommand(res.getString("etat_syn"));
}
然后在jComboBox3
的 Action 监听器中,你可以这样做:
jComboBox3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
String actionCommand = actionEvent.getActionCommand();
if("0".equals(actionCommand)) {
//Do this
} else {
//Do something else.
}
}
});
如果您希望在 Button 的操作监听器中进行处理,则可以使用 Map
来存储值,然后将其用于比较。您的代码将更改如下:
Map<String, Integer> itemsMap = new HashMap<String, Integer>(); //Declare this as a member of the class.
while(res.next()){
String name = res.getString("name");
jComboBox3.addItem() ;
int value = Integer.parseInt(res.getString("etat_syn"));
itemsMap.put(name, value);
}
按钮的 Action 监听器如下:
yourButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
String selectedItem = (String)jComboBox3.getSelectedItem();
int value = itemsMap.get(selectedItem);
if(value == 0) {
//Do this
} else {
//Do something else.
}
}
});
关于java - 测试 jComobobox java swing 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17210488/
我有一个组合框,用于显示表列中的数据。 sql表包含2列:name - etat_syn 因此组合框显示名称的数据: jComboBox3.removeAllItems(); try{
我是一名优秀的程序员,十分优秀!