java - 测试 jComobobox java swing 中的行

标签 java mysql

我有一个组合框,用于显示表列中的数据。

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/

相关文章:

mysql - Left Join 到另一个 select 语句

mysql - 当所有 child 都满足某些标准时更新 parent ?

java - Oracle SQL Developer 4.2.0.17.089.1709 无法打开 - 无错误

java - 如何将要求用户输入的变量与用户的输入进行比较?

java - 如何引用Hadoop上hdfs中存储的依赖项(jar)?

mysql - sql 查询有几行重复

mysql - 在mysql中组合2个选择查询

MySQL 查询 SELECT FROM 2 个表,COUNT 最常用

java - 滚动 Pane 图形错误

java - Kafka AdminClientConfig 忽略提供的配置