Установка значения по умолчанию в jcombobox, заполненном запросом
В настоящее время я пишу программу на Java, которая использует заполненный запросом jcombobox. Мне было интересно, если есть способ выбрать значение по умолчанию при выполнении программы. Мой запрос представляет собой список языков, перечисленных в алфавитном порядке, но мне любопытно, можно ли по умолчанию использовать английский язык (который находится в середине списка).
Я знаю, что когда вы вручную жестко кодируете значения в jcombobox, вы можете установить переменную по умолчанию как
jcombobox.setSelectedIndex(int anIndex);
или же
jcombobox.setSelectedItem(Object anObject);
но я не уверен, когда ResultSet зацикливается и заполняет jcombobox.
В настоящее время мой код:
languageLabel =new JLabel("Languages:");
rowFour.add(languageLabel,BorderLayout.WEST);//adding to my current panel
langbox = new JComboBox();
rowFour.add(langbox,BorderLayout.WEST);
try
{
con = DriverManager.getConnection ("jdbc:oracle:thin:@localHost:portNumber:ORCL", "username", "password");
statement = con.createStatement();
}
catch(SQLException sqle)
{
System.out.println(sqle);
}
langbox.removeAllItems();
langbox.addItem("Please Select...");
try
{
ResultSet rs = statement.executeQuery("select language from language order by 1");
while (rs.next())
{
langbox.addItem(rs.getString(1));
//Thinking that this is where a default value would be located
}
}
catch(Exception e)
{
System.err.println(e);
}
Спасибо за ваше время.
1 ответ
Решение
ResultSet rs = statement.executeQuery("select language from language order by 1");
while (rs.next()) {
langbox.addItem(rs.getString(1));
//I'm thinking that this is where a default value would be located
if(rs.getString(1).equals(myDefaultLanguageVariable)) {
langbox.setSelectedItem(rs.getString(1));
}
}
Кстати: вы должны очистить этот код, это не очень хорошо.