السلام عليكم
كيف يمكن ان املا combobox من قاعدة بيانات
حيث اجعل text اللي يظهر مثلا هو Country_name و value لكل item هو ID الخاص باسم البلد
ولما اعمل select في combobox كيف يمكن ان استرجع فيمة selectedItem and value
شكرا
السلام عليكم
كيف يمكن ان املا combobox من قاعدة بيانات
حيث اجعل text اللي يظهر مثلا هو Country_name و value لكل item هو ID الخاص باسم البلد
ولما اعمل select في combobox كيف يمكن ان استرجع فيمة selectedItem and value
شكرا
هاجيب البيانات من قاعده البيانات
وبعدين اعمل ليها add فى الـ comboboxواحد واحد
او احصل على البيانات على هيئه Array وبعدين اثناء تعريف الـ ComBoBox ادخل له هذه المصفوفه كمتغيرات فى البناء الخاص به
مثلا
Object [] arra = new Object [20]; JComboBox box = new JComboBox(arra);
كدا انا ضفت البيانات الى الـComBoBox
ازاى بقا احصل على البيان من الـ ComBoBox
باستخدام الداله
box.getSelectedItem();
او لو عاوز الترتيب بتاعها
box.getSelectedIndex();
يمكنك القراءه اكثر عن الـ JComboBox وعن الدوال التى بها
من هنا
http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JComboBox.html
ودا مثال على الاستخدام لكنه مثال عادى وليس باستخدام قواعد البيانات
http://download.oracle.com/javase/tutorial/uiswing/components/combobox.html
بالتوفيق :)
شكرا عالرد اللي قلته اعرف اعمله
لكن اريد ان اجعل ل combobox قيمة tet تظهر بداخله وقيمة values احصل عليها عند الضغط
مثلا
اعمل select ID, Country
لكن اعل قيمة country تظهؤ في الكموبو بوكس لكن قيمة ID احصل عليها عند اختيار item من combobox
يعني حاجة تشبه VB عند التعامل مع القوائم
lovely_ned كتب:شكرا عالرد اللي قلته اعرف اعمله
لكن اريد ان اجعل ل combobox قيمة tet تظهر بداخله وقيمة values احصل عليها عند الضغط
مثلا
اعمل select ID, Country
لكن اعل قيمة country تظهؤ في الكموبو بوكس لكن قيمة ID احصل عليها عند اختيار item من combobox
يعني حاجة تشبه VB عند التعامل مع القوائم
على حد فهمى للسوال
انك تريدين ان تضعى قيم الـبلاد فى الـ combobox لكن عند اختيار البلد من الـ combobox يعود اليكى بقيمه الـ ID الموجوده فى قاعده البيانات
انتى ممكن تعمليها ازاى عندك Array مكونه من عمودين اللى هما Country , id وعدد الصفوف اللى هترجع لك من الداتا بيز
ساعتها هتحطى القيم بتاعت البلاد فى الـ combobox ولم تختارى من الـcombobox تشوفى ايه المقابل ليه فى العمود التانى اللى موجود فى الـ Array وبكدا تحددى الـ ID
وتستخدميه زى ما انتى عاوزه
يا اما ان كانت البلاد غير مكرره فانتى عندك لكل بلد ID خاص بيها مممكن تعملى ليهم ترتيب وتضعيهم فى الـ combobox وبعدين تتعاملى من منطلق هذا الترتيب
هى المشكله مسئله تفكير فى طريقه العمل فقط
اتمنى ان تكون اتضحت الفكره شويه
بالتوفيق :)
طيب انا عملت الكلاس:
public class ValueCombo {
int ID;
String Val;
public ValueCombo (int ID, String Val) {
this.ID = ID;
this.Val = Val;
}
public int getID() {
return ID;
}
public String getVal() {
return Val;
}
}ثم كلاس
import java.awt.List;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.JComboBox;
public class Categorie {
private JComboBox Cat;
public Categorie (JComboBox Cat1)
{
Cat=Cat1;
Cat.removeAll();
ArrayList<ValueCombo> list = new ArrayList<ValueCombo>();
Connection con = new ConBDD().getCon();
String SqlStr= "Select IDCat, Cat from Categorie";
try {
Statement stmt = con.createStatement();
ResultSet rs= stmt.executeQuery(SqlStr);
Cat.addItem(new ValueCombo(0, ""));
while (rs.next())
{
//Cat.addItem(new ValueCombo(rs.getInt(1), rs.getString(2)));
list.add(new ValueCombo(rs.getInt("IDCat"), rs.getString("NomCat")));
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}كيف يمكن ان املا الكمبو بوكس بالداتا
لو ممكن مساعدة لاني اريد هذه الطريقة لانها تساعدني في طريقة عملي
أعتقد أن compobox تحتوي على setModel تأخذ ComboBoxModell
وتساعدك في أن تضعي ما تشائين هناك
ابحثي حول الموضوع وستجدي الكثير من الأمثلة
تحياتي
Vector edit_group = new Vector();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Connection conn = DriverManager.getConnection("jdbc:odbc:CLOTHES");
Statement stmt = conn.createStatement();
ResultSet rs=stmt.executeQuery("SELECT GROUP_NAME FROM ITEM_GROUP");
// ResultSet rs1=stmt.executeQuery("SELECT ITEM_COLOR FROM ITEM ");
while(rs.next()){
String name=rs.getString("GROUP_NAME");
edit_group.add(name);
edit_group.toArray();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
edit_group_name_combo = new javax.swing.JComboBox(edit_group.toArray());
edit_group_name_combo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
edit_group_name_comboActionPerformed(evt);
}
});
// Code adding the component to the parent container - not shown here