Когда я использую инструкции if ... else ... с подключениями к базе данных, он не будет правильно устанавливать значок.setIcon не работает с условиями
Это база данных с его значениями:
фрейму имеет две надписи на нем, в частности, для икон. Куда только сейчас сосредоточиться на одном из этих лейблов, потому что они функционируют одинаково.
Случается, что при извлечении записи один из столбцов «MSGTYPE» содержит либо «ИНФОРМАЦИЯ», «ОБЪЯВЛЕНИЕ», «НАГРАД», либо «ПРЕДУПРЕЖДЕНИЕ». значок JLabel должен соответствовать изображению с типом сообщения, например. Если текущая запись является объявлением, значок должен быть значком «объявление». Что происходит, это то, что я использую if ... else ... statements, но по умолчанию используется оператор else. См. Код ниже.
try {
String sql = "Select * from app.EBULLETINS ORDER BY msgid DESC FETCH FIRST 2 ROWS ONLY";
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection con = (Connection) DriverManager.getConnection("jdbc:derby://localhost:1527/GTPADB", "some#[email protected], "some#[email protected]$$w0rd");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
eBul1_Title = rs.getString("Title");
eBul1_Msg = rs.getString("Msg");
eBul1_Type = rs.getString("MSGTYPE");
}
eBul1T.setText(eBul1_Title + "/" + eBul1_Type);
eBul1M.setText(eBul1_Msg);
System.out.println("Setting Icons");
if (eBul1_Type == "INFORMATION") {
TypeImage1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Information.png")));
System.out.println("Info");
}
else if (eBul1_Type == "ANNOUNCEMENT") {
TypeImage1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/announcement.png")));
System.out.println("Announce");
}
else if (eBul1_Type == "WARNING") {
TypeImage1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Warning.png")));
System.out.println("Warning");
}
else if (eBul1_Type == "AWARD") {
TypeImage1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/award.png")));
System.out.println("Award");
}
else {
TypeImage1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Information.png")));
System.out.println("Other");
}
}
catch (Exception eB1Exc) {
JOptionPane.showMessageDialog(this, eB1Exc);
}
При запуске, это выводит следующую printlns:
1. Setting Icons
2. Other
3. Other
фрейм также показывает это следующим образом: (Игнорировать поля, которые не показывают)
* Вы отметите что Объявление имеет тот же значок, что и информация *
Возможный дубликат [Java String.equals versus ==] (http://stackoverflow.com/questions/767372/java-string-equals-versus) –
Возможный дубликат [Как сравнить строки в Java?] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –