PDA

View Full Version : یک سطر از jtable



jeus
یک شنبه 26 خرداد 1387, 06:14 صبح
دوستان من یک jtable دارم که میخواهم اطلاعات یک سطرشو از یک فرم به فرم دیگه منتقل کنم فذم اول من برای نمایش سطرهاست در jtable و فرم دوم برای ویرایش اون سطرهاست خودم میگم اطلاعات را از فرم یک به فرم 2 بفرستم اما از بعضی لحاظ میگم نه فقط کلید اون سطر را به فرم 2 بفرستم و بعد در اونجا یک select از دیتا بیس داشته باشم البته تمام اطلاعات این سطر (بالغ بر 17 مورد ) باید در Jtext , Jradio,... نمایش داده بشند تا شخص بتونه edit کنه و ستونهای jtable من قابلیت حذف شدن دارند و شخص میتونه اونها را از jtable حذف کنه

unhandled_event
یک شنبه 26 خرداد 1387, 11:45 صبح
سلام

احتمالا این روش بیشتر در برنامه های ویژوال بیسیک و زبانهای غیر object orianted استفاده میشه اما در جاوا شما میتونید از یک Pojo یا java bean ساده استفاده کنید به این صورت :

1- فرض کنید فرمی که توش jtable هست ، توسط tablemodel خاص خودش داره اطلاعات یک جدولی رو نمایش میده بنام Customers ، یک کلاس java bean درست میکنیم معادل جدول دیتابیس به اینصورت که تک تک فیلدها توش بصورت private هستن با تایپهای صحیح و بعد بصورت getter و setter این فیلدها قابل مقدار دهی و بازیابی هستن. این در واقع بخشی از مدل شماست و واسط بین منطق برنامه و دیتابیس. شما ممکنه java bean های دیگه ای هم داشته باشید معادل جدولهای دیگه دیتابیس.

2- هر instance از این کلاس نشاندهنده یک row یا رکورد در جدول دیتابیس شماست و مجموعه ای از این inscance ها یک List یا Collection هست نشاندهنده یک recordset و یا اگر با دات نت آشنایی داشته باشید معادل یک DataTable

3- در jtable باید این collection رو نشون بده ( sample در این مورد زیاد هست اگر سرچ کنید) با انتخاب هرکدوم از سطرهای جدول برنامه به صفحه فرم میره و شما current row رو از collection یا list بیرون میکشید مثلا بوسیله شماره سطر یا همون کلیدش و بعد از پیدا کردن Customer مربوطه اونو پاس میکنید به فرم و فرم شما یک معادل سازی میکنه بین فیلدهای این instance از customer و فیلدهای صفحه رو مقدار دهی میکنه.

4- بعد از edit اون customer روند 3 برعکس میشه و تمام تغییرات دوباره برمیگردن میرن داخل collection و رکورها با آخرین وضعیت اونجا هستن در واقع یک جور cache از رکوردهاست.

5- با دکمه ذخیره یا هر action مورد نظر شما همیشه collection رو در دیتابیس ذخیره میکنید بنابراین فرقی نمیکنه که داخل فرم باشید یا jtable

6- فکر کنم اگر نوعی Binding رو بین فیلدهای فرمها یا jtable از صفحات به اون collection برقرار کنید بهتره حالا یا بوسیله فریم ورکهایی که احتمالا برای Swing در این مورد هست یا خودتون بنویسید البته کار پر دردسریه.

موفق باشید
S.S

jeus
شنبه 01 تیر 1387, 08:35 صبح
دوست من اگه من بخواهم یک cell از سطر انتخاب شده را برگردانم باید از چه کدی استفاده کنم لطفا راهنماییم کنید