我的项目中有一个 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/