java - 当我单击 jList 中的项目时,背景颜色不会改变

标签 java sql swing jframe

我的项目中有一个 jList 和按钮。我的目的是当我单击 jList 上的项目时,需要更改按钮的背景颜色。就我而言,单击该项目时返回的值是“确定”或“否”。因此,当在 jList 中单击该项目时,我会毫无问题地返回相应的“OK”或“NO”。但是,背景颜色不会改变。这是我使用的代码:

private void listBoxProjectsValueChanged(javax.swing.event.ListSelectionEvent evt) {                                             

    String value = (String)listBoxProjects.getSelectedValue();
    String sql = "SELECT * FROM PBL_Projects where ProjectName=?";

    try {

         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
         String url = "jdbc:sqlserver://webserver:1111; databaseName=sinfo;integratedSecurity=true;";

         Connection conn = DriverManager.getConnection(url);
         PreparedStatement pst = conn.prepareStatement(sql);
         pst.setString(1, value);
         ResultSet rs = pst.executeQuery();
         if(rs.next()){

             String studentName = rs.getString("StudentName");
             String projectName = rs.getString("ProjectName");
             String projectDetails = rs.getString("ProjectDetails");
             String t1s1 = rs.getString("T1S1");

             txtDisplayProjectName.setText(projectName);
             txtDisplayStudentName.setText(studentName);
             txtAreaDisplayProjectDetails.setText(projectDetails);
             lblResult.setText(t1s1);

             if(t1s1=="NO"){
                 btnT1S1.setBackground(Color.RED);
             }else if(t1s1 == "OK"){
                 btnT1S1.setBackground(Color.GREEN);
             }else{
                 btnT1S1.setBackground(Color.BLUE);
             }

         }


    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }

}  

在这里,我可以看到其他属性,例如 ProjectName、StudentName 等。我使用非常简单的 if 语句来更改按钮的背景颜色。但它不会让我。

最佳答案

我正在使用双等于运算符比较字符串。它应该是 .equals 方法。

if(t1s1.equals("NO")){
                 comboT1S1.setBackground(Color.red);
                 btnT1S1.setBackground(Color.RED);
                 btnT1S1.setText("NO");
             }else if(t1s1.equals("OK")){
                 btnT1S1.setBackground(Color.GREEN);
                 btnT1S1.setText("OK");
             }else if (t1s1.equals("")){
                 btnT1S1.setBackground(Color.BLUE);
             }

关于java - 当我单击 jList 中的项目时,背景颜色不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35090277/

相关文章:

java - JDialog 让主应用程序失去焦点

java - 我们如何在 swing 应用程序中使用 java 实现 .xml 文件?

java - java准备语句中具有不同值的SQL选择请求

java - Scala:在 Scala 中使用来自 Java 的多个构造函数

java - 如果我使用数字作为循环停止符,如何确保我的程序不会将该数字初始化为最大值或最小值?

php - 循环sql SELECT 查询

java - 如何访问数组中的数组?

MySQL - 使用一个表中的列(如果存在),否则从另一个表中获取

sql - Postgres 触发器检查日期是否与现有记录重叠

单击单元格之前表中的 Java JComboBox 不显示