2012-03-02 4 views
0

Я хочу добавить комбинированное поле, которое заполняется из базы данных mysql в netbeans 7.1. Я сделал простую реализацию, например, следующую, но эта кодировка не работает.Заполнение jcombobox в netbeans 7.1

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) { 
    try 
    { 
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost/combo","root","root123"); 
     Statement stmnt = (Statement) con.createStatement(); 
     String SQL = "SELECT * FROM items"; 
     ResultSet rs = stmnt.executeQuery(SQL); 
     while(rs.next()) 
     { 
      jComboBox1.addItem(rs.getString("itemcode")); 
     } 
    } 
    ... 
} 

Как решить эту проблему.

+2

Просьба описать ожидаемый и фактический результат. – Puce

+0

Я хочу увидеть запись кодов в раскрывающемся меню, как: Itemcode1 Itemcode2 Itemcode3 ... и т.д. – Grant

+0

Есть ли результат от выполнения этого кода? Если нет, попробуйте добавить блок catch в нижней части блока try и посмотреть, что произойдет. – Ocracoke

ответ

1

Предположим, что ваш combobox состоит из элементов String. Вы должны создать combobox, который будет использовать эти строковые элементы на своем дисплее.

String items[] = {...}; 

Образец декларации выпадающий может быть, как это:

JComboBox comboBox = new JComboBox(items); 

Так наполнении items массив с помощью данных, поступающих из базы данных может быть решением вашей проблемы, то есть выпадающий не имеет ничего общего с базой данных , но строковые элементы имеют.

int index = 0; 
ResultSet rs = statement.executeQuery(SQL); 
while(rs.next()) 
    items[index] = rs.getString("itemcode"); 

Однако, так как вы не знаете, сколько элементов вы будете получать из базы данных вы можете использовать ArrayList вместо массива, так что вы можете динамически добавлять элементы в список.

+0

спасибо, что убил ваше время по моему вопросу. Я пытался это сделать, но проблемы не решаются. Я хочу знать, что добавление кодов к этому методу «private void jComboBox1ActionPerformed (java.awt.event.ActionEvent evt)» правильно? Я думаю, проблема в этом. потому что, когда я запускаю программу, выпадающее меню показывает значения по умолчанию, скрытые netbeans (Item1, Item2 ....). Я новичок в программировании, поэтому я не знаю, как избавиться от этого – Grant

+0

@Grant you хотите иметь combobox, который будет отображать элементы из базы данных. освежит ли он себя? нет. так что сначала заполните ваши объекты из базы данных, а затем установите этот массив в поле со списком. combobox - только компонент gui, он не имеет ничего общего с базой данных. – Juvanis

+0

Да, я понял. Моя программа правильно извлекает значения из базы данных и сохраняет их в массиве, но проблема заключается в том, когда я собираюсь показать значения в списке списков со списком с помощью jComboBox1.addItems(); оператор не показывает никакого значения, возвращаемого из базы данных. – Grant

0

попробовать {

Class.forName("com.mysql.jdbc.Driver"); 
    Connection con=DriverManager.getConnection("jdbc:mysql:///dbname", "username", "password"); 
    Statement st=con.createStatement(); 
    Resultset r=st.executeQuary("SELECT * FROM table name"); 
    while(r.next()){ 
     Vector v=new Vector(); 
     ComboBox1.setModel(new DefaultComboBoxModel(v)); 
    } 

} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

Просьба оставить 4 пробела перед началом блока «try», чтобы это соответствовало абзацу кодирования. – Freakyuser

Смежные вопросы