السلام عليكم ورحمة الله وبركاته
::استخدم ال JTable في اضافة الحقول.. حذف والتعديل ..واضافة
عندما اضغط على سطر او صف موجود بالجدول تكون القيم تكتب تلقائي في Textfield
ال Jtext تعمل بشكل جيد
لكن في combobox لا تعطيني القيمة الموجود يالصف المختار..اي لاتوضع القيمة تلقائياً...
هنا الكود
خاص عند الضغط على السطر او الصف المراد تعديله
private void data_jTableMouseClicked(java.awt.event.MouseEvent evt) {
int row = data_jTable.getSelectedRow();
StudentId_field.setText(data_jTable.getModel().getValueAt(row, 0).toString());
First_field.setText(data_jTable.getModel().getValueAt(row, 1).toString());
Last_field.setText(data_jTable.getModel().getValueAt(row, 2).toString());
phoneNumber_Field.setText(data_jTable.getModel().getValueAt(row, 7).toString());
Location_Field.setText(data_jTable.getModel().getValueAt(row, 6).toString());
// classLevel_combobox.setSelectedIndex(data_jTable.getModel().getValueAt(row, 5));//Wrong
// age_ComboBox.setSelectedItem(data_jTable.getModel().getValueAt(row, 6).toString());//Wrong
// gender_ComboBox.setSelectedItem(data_jTable.getModel().getValueAt(row, 7).toString());//Wrong
// TODO add your handling code here:
}وهنا خاصه با combobox
public void setCombobox(){
int i=0;
//String add = null;
try {
String com ="SELECT ClassLevel FROM shc.classlevel";
preparesStat = connection_11.getConnection().prepareStatement(com);
rssultSet=preparesStat.executeQuery();
while(rssultSet.next()){
i++;
classLevel_combobox.removeAllItems();
rssultSet.beforeFirst();
classLevel_combobox.addItem("");
while(rssultSet.next()){
classLevel_combobox.addItem(rssultSet.getString("ClassLevel"));
//Text.setText(add);
}}
}catch (SQLException e1) {
JOptionPane.showMessageDialog(null, e1+"Cobobox...");
}
}
public int getClasslevel(){
int classlevel = classLevel_combobox.getSelectedIndex();
return classlevel;
}
public int getAge(){
int Age = age_ComboBox.getSelectedIndex()+6;
return Age;
}
public String getGender(){
String gemderName = null ;
if(gender==1){
gemderName ="Female";
}
else if(gender==2){
gemderName ="Male";
}
return gemderName;
}
}وهنا الجداول وشكلها
delimiter $$ CREATE TABLE `classlevel` ( `index` int(11) NOT NULL, `ClassLevel` varchar(45) DEFAULT NULL, PRIMARY KEY (`index`), UNIQUE KEY `index_UNIQUE` (`index`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8$$ delimiter $$
CREATE TABLE `student` ( `StudentId` varchar(9) NOT NULL, `ClassLevel_index` int(11) NOT NULL, `Age` int(11) DEFAULT NULL, `FirstName` varchar(30) DEFAULT NULL, `LastName` varchar(30) DEFAULT NULL, `FirstName_AR` varchar(30) DEFAULT NULL, `LastName_AR` varchar(30) DEFAULT NULL, `Location` varchar(45) DEFAULT NULL, `Gender` varchar(6) DEFAULT NULL, `HomePhoneNumber` varchar(9) DEFAULT NULL, PRIMARY KEY (`StudentId`,`ClassLevel_index`), KEY `fk_Student_ClassLevel1` (`ClassLevel_index`), CONSTRAINT `fk_Student_ClassLevel1` FOREIGN KEY (`ClassLevel_index`) REFERENCES `classlevel` (`index`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8$$ delimiter $$
سؤال اخر في حال اردت تغير اسماء الاعمد هل استطعين ذلك مع العلم اني استخدم مكتبة
import net.proteanit.sql.DbUtils;
تكلمه للكود
private void formWindowOpened(java.awt.event.WindowEvent evt) {
this.setCombobox();
//datacon.connected();
// TODO add your handling code here:
}بحيث اقوم بتجهيوها عند فتح ال JFrame


