PDA

View Full Version : آپدیت جدول



baradar
یک شنبه 02 خرداد 1389, 15:26 عصر
سلام
من یک برنامه دارم که به دیتابیس اکسس وصل میشه و اطلاعات
رو در jtable نمایش میده خوب تا اینجا که مشکلی نیست
حالا دو سوال از اساتید محترم دارم

1- من می خوام وقتی کاربر یک سطر جدول رو انتخاب میکنه و روی اون سطر دوبار کلیک میکنه
یک فرم باز بشه که حاوی اطلاعات اون سطره و بعد بتونه اون رو ویرایش کنه البته مشکل من نمایش فرم و بدست آوردن مقادیر سلولهای جدول نیست مشکل من انتقال مقادیر از این به فرم
قابل ویرایش است

2- مثلا وقتی اطلاعاتی رو به دیتابیس اضافه یا حذف یا ویرایش کردیم بلافاصله جدول
عکس العمل نشون بده آیا میشه فقط همون اطلاعاتی (مثلا یک رکورد دیتابیس) رو ویرایش
کردیم فقط همون سطر مربوط به اون رکورد تغییر کنه و ما دوباره جدول رو از نو بازنویسی نکنیم

baradar
دوشنبه 03 خرداد 1389, 16:50 عصر
هیچ کس نیست بهم جواب بده :متعجب:

persianshadow
دوشنبه 03 خرداد 1389, 17:35 عصر
خب آخه این که مشکل نیست که همه برنامه می‌شه :).ولی به شکل کوتاه و در قالب راهنمایی کردن هر دو تا مورد
شدنی هست و زیاد هم پیچیده نیست اما چطوری :

۱ - مورد اول رو که بیشتر راه رو خودتون رفتید یعنی گرفتین مقادیری سطری که کاربر روی اون کلیک کرده و باز کردن

فرم خب اول اینکه از فرم استفاده نکنید یعنی GUI شما در این مورد بهتره از JDialog ساخته شده باشه.بعدش در

Event Handling خودتون یعنی همون جایی که دو بار کلیک کاربر رو تشخیص دادید و قبل از اینکه فرم ویرایش رو باز

کنید اطلاعات اون سطر رو بخونید یعنی دقیقآ اطلاعاتی که باید برای فرم خودمون ارسال کنیم تا درون TextField ها

قرار بگیره.حالا شما کافیه این فرم ویرایشتون یک سازنده داشته باشه با پارامترهای که باید برایش ارسال کنید

مثلآ




public EditForm(String name, String bankcode, int salary){


jtextfield1.setText(name);


}

البته من همه سازنده رو ننوشتم مثلآ اینجوری بعد به شکل زیر هم فراخوانیش میکنید ! و تمام یعنی الان

اطلاعات شما منتقل شده






EditForm ef=new EditForm("reza","123456789",3300000);



البته فراموش نشه که مهم‌ترین نکته در این مورد این هست که فرمی که طراحی کردید [که بهتره با دست کدنویسی هم شده باشه ] شی‌های JTextField باید static باشند. یا حداقل براشون accessor و mutator
نوشته باشید.


۲ - سئوال دوم شما واضح نیست یعنی چی دوباره جدول رو بازنویسی نکنیم ؟ کما اینکه شما می‌تونید

یک event برای جدول تعریف کنید و در کدهای مربوط به دیتابیس وقتی دیتابیس تغییر کرد.جدول رو revalidate
کنید.

baradar
دوشنبه 03 خرداد 1389, 18:07 عصر
از پاسخ موثر شما سپاسگزارم:لبخند: