بالنسبه لـ
import servicespkg.UsersService; import beanspkg.Users;
فهذا استدعاء للملفات موجوده عندك فى المشروع
فعلا الداله
public Users[] selectAll() throws SQLException
تقوم بتحميل كل المستخدمين من قاعده البيانات وتخزينهم فى array لذلك فان الـ return data type لهذه الداله
هو array من نوع Users
ازاى بقا استغل هذه الـ array فى انى اعمله فى جدول
UsersService usersService = new UsersService();
try {
Users[] users;
users = usersService.selectAll();فى هذه الجزئيه قومت بتعريف كان على الـ UsersService class
وقومت ايضا بتعريف array من الـ Users
واقوم باستدعاء الداله selectAll() على الكائن الذى من نوع UsersService
والتى تعود الينا بـ array من الـ Users اقوم بعدها بتخزينها فى الـ users array اللى عرفتها داخل الكود بتاعى
هكذا
users = usersService.selectAll();
بعدها يكون لدى مصفوفه من المستخدمين اقوم بالتعامل معاها
بعدها اقوم بتعريف مصفوفه ثنائيه يكون عدد صفوفها هى طول الـ Users array
ويكون عدد اعمدتها عدد المتغيرات الموجوده فى الـ Users Class او عدد المتغيرات المراد عرضها لكل مستخدم
فى هذه الحاله
انا اردت ان اعرض
ID , Username , Password , Type
يعنى 4 اعمده
الممثله فى هذا السطر
int userAttributesNumber = 4;
وكما ذكرت نقوم بعمل مصفوفه ثنائيه هكذا
Object usersArr[][] = new Object[users.length][userAttributesNumber];
ونقوم بالدخول بعدها فى loop التى تقوم بتفريغ محتويات الـمصفوفه Users فى الـمصفوفه الـ usersArr
for (int i = 0; i < users.length; i++) {
Object[] rows = new Object[userAttributesNumber];
rows[0] = users.getId();
rows[1] = users.getUsername();
rows[2] = "*****";
if (users.getType() == 1) {
rows[3] = "مدير";
} else if (users.getType() == 2) {
rows[3] = "مشرف";
} else if (users.getType() == 3) {
rows[3] = "زائر";
}
usersArr = rows;
}نقوم بتعريف مصفوفه تستخدم فى حمل بيانات كل صف من صفوف المصفوفه الثنائيه
وهيكون طولها 4 مثل طول الصف فى المصفوفه الثنائيه
Object[] rows = new Object[userAttributesNumber];
وبعدها نقوم بالحصول على الـ Id , name , password , type الموجودين داخل الـ users
وتحميلهم فى الـ rows
وبعد ان نتهى من الصف كاملا
نقوم بوضعه فى الـ usersArr
حتى تنتهى الـ loop
وبعد ان ننتهى من الحصول على البيانات فى مصفوفه ثنائيه
نقوم بعمل جدول
registeredUserTable.setModel(new DefaultTableModel(usersArr, new String[]{"رقم المستخدم", "اسم المستخدم", "الرقم السرى", "النوع"}));ونقوم باعطاء الـ Model لهذا الجدول
ويكون DefaultTableModel
والذى ياخذ فى المتغيرات الخاصه به
مصفوفه ثنائيه من البيانات
وعناوين الاعمده
وبهذا نكون وضعنا البيانات فى الجدول بشكل dynamic
هذه هى الداله التى شرحنا كيف تعمل
private void loadSalesData() {
UsersService usersService = new UsersService();
try {
Users[] users;
users = usersService.selectAll();
int userAttributesNumber = 4;
Object usersArr[][] = new Object[users.length][userAttributesNumber];
for (int i = 0; i < users.length; i++) {
Object[] rows = new Object[userAttributesNumber];
rows[0] = users.getId();
rows[1] = users.getUsername();
rows[2] = "*****";
if (users.getType() == 1) {
rows[3] = "مدير";
} else if (users.getType() == 2) {
rows[3] = "مشرف";
} else if (users.getType() == 3) {
rows[3] = "زائر";
}
usersArr = rows;
}
registeredUserTable.setModel(new DefaultTableModel(usersArr, new String[]{"رقم المستخدم", "اسم المستخدم", "الرقم السرى", "النوع"}));
registeredUserTable.setRowSelectionInterval(0, 0);
} catch (SQLException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}اتمنى ان يكون الشرح مفهوم
بالتوفيق :)
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 4 أكتوبر 2010 في 19:03
