یکی دیگر از کلاس های موجود در پکیج Swingکلاس JTable است. کلاس JTable برای نمایش داده ها در یک فرم جدولی استفاده میشود.همان طور که هر جدولی دارای سطر و ستون است، شی ایجاد شده از کلاس JTable ترکیبی از سطر و ستون است. برای درکی از شکل ظاهری اجزای گرافیکی JTable تصویر(1) را مشاهده کنید:
• در تصویر(1) یک JTable داریم که از تعدادی سطر و ستون تشکیل شده است.
سازنده های پرکاربرد کلاس JTable :
توصیف | سازنده |
ایجاد یک جدول با سلول های خالی | JTable() |
ایجاد یک جدول با داده های مشخص شده | JTable(Object[][] rows, Object[] columns) |
• دیگه فعلا تئوری رو رها میکنیم میریم سراغ حل مثال! در خلال بررسی مثال ها سایر مفاهیم ،ویژگی ها و متدهای کلاس JTable را بررسی میکنیم.
مثال:
package swing_javalike ; import javax.swing.*; public class TableExample { JFrame f; TableExample(){ f=new JFrame(); String data[][]={ {"101","hasan","670000"}, {"102","jafar","780000"}, {"103","maryam","700000"}}; String column[]={"ID","mina","SALARY"}; JTable jt=new JTable(data,column); jt.setBounds(30,40,200,300); JScrollPane sp=new JScrollPane(jt); f.add(sp); f.setSize(300,200); f.setVisible(true); } public static void main(String[] args) { new TableExample(); } } |
خروجی: تصویر(2)
String data[][]={ {"101","hasan","670000"}, {"102","jafar","780000"}, {"103","maryam","700000"}}; |
• یک آرایه دو بعدی تعریف کرده و داده های خود را درون آن میریزیم.این آرایه دو بعدی قراره داده های جدول JTabel ما را تشکیل خواهد داد.
String column[]={"ID","mina","SALARY"}; |
• یک آرایه یک بعدی تعریف کرده و داده هایی را درون ان میریزیم، داده های این آرایه عنوان های ستون جدول JTabel ما را تشکیل خواهد داد.
• پس تا اینجا داده های جدول را درون یک آرایه دو بعدی و داده های عناوین ستون جدول را درون یک آرایه یک بعدی ریختیم.
JTable jt=new JTable(data,column); |
• برای ایجاد جدول در برنامه از کلاس JTabel شی ایجاد کرده ایم.درون سازنده این کلاس آرایه دوبعدی data که حاوی داده های جدول و آرایه یک بعدی column که حاوی عنوان های ستون جدول است را قرار داده ایم.
jt.setBounds(30,40,200,300) |
• تعیین مختصات و ابعداد جدول خود در فریم
JScrollPane sp=new JScrollPane(jt); |
کلاس JScrollPane :
برای افزودن قابلیت اسکرول به اجزای گرافیکی، مدیریت نمایش،افقی یا عمودی بودن اسکرول بارها و نمایش عنوان های سطر و ستون استفاده میشود. در تصویر(3) یک اسکرول بار افزوده شده به یک TextField را مشاهده میکنید:
• برای افزون یک اسکرول بار و تعیین عنوان سطر و ستون و.. کافیست از کلاس JScrollPane شی ایجاد کنیم و درون پارامتر سازنده کلاس شی از اجزای گرافیکی مربوطه قرار دهیم.
• برای افزودن اسکرول بار و تعیین ستون برای جدول خود از JScrollPane استفاده میکنیم. روش کار هم به این صورته که ابتدا از کلاس JTabel شی ایجاد میکنیم و سی ایجاد شده را درون پارامتر سازنده کلاس JScrollPane قرار میدهیم:
JTable jt=new JTable(data,column); JScrollPane sp=new JScrollPane(jt); |
پس هنگام ایجاد جدول JTabel در برنامه حتما باید از کلاس JScrollPane استفاده کنیم.
1. f.add(sp); 2. f.setSize(300,200); 3. f.setVisible(true); |
1. افزودن شی از JScrollPane به فریم خود
2. تعیین ابعداد فریم
3. برای نمایش فریم و تمام اجزای گرافیکی برنامه کاربرد دارد
مثال از JTabel و استفاده از اینترفیس List select ionListener:
package javalike ; import javax.swing.*; public class TableExample { |
خروجی:تصویر(4)
اگر هر عنصر درون سلول های جدول را انتخاب کنید، مقدار عنصر انتخاب شده در کنسول نمایش داده میشود، مثلا اگر ما عنصر Jai موجود در سلول جدول را انتخاب کنیم خروجی بصورت زیر خواهد بود: تصویر(5)
خروجی در کنسول:
Table element select ed is: Jai Table element select ed is: Jai |
توضیحات:
jt.setCell select ionEnabled(true); |
این متد قابلیت انتخاب سطر و ستون سلول های جدول را تعیین میکند.
List select ionModel select = jt.get select ionModel(); select .set select ionMode(List select ionModel.SINGLE_ select ION); select .addList select ionListener(new List select ionListener() { public void valueChanged(List select ionEvent e) { String Data = null; int[] row = jt.get select edRows(); int[] columns = jt.get select edColumns(); for (int i = 0; i < row.length; i++) { for (int j = 0; j < columns.length; j++) { Data = (String) jt.getValueAt(row[i], columns[j]); } } System.out.println("Table element select ed is: " + Data); } }); |
• این دستورات برای این است که وقتی یکی از سلول های جدول انتخاب میشود عمل خاصی رخ دهد.به این صورت که وقتی ما یکی از سلول های جدول را انتخاب میکنیم یک رویداد رخ میدهد که متد valueChanged آن را دریافت میکند و دستورات درون بدنه خود را اجرا میکند. که در این جا مقدار سلولی که انتخاب شده درون کنسول چاپ میشود.
• متد get select ionModel جریانی از مدل انتخاب را برمیگرداند.
• جریانی از مدل های انتخاب شده از جدول را درون شی از کلاس List select ionModel میریزیم.
• کلاس List select ionModel مجموعه ای از مدل های انتخاب را در خود جا میدهد.
select .set select ionMode(List select ionModel.SINGLE_ select ION); |
• در این دستور در هر زمان تنها یک ایندکس لیست را میتوانیم انتخاب کنیم.
• با متد addList select ionListener شی از اینترفیس List select ionListener به List select ionModel اضافه میکنیم.
• متد valueChanged در برابر تغییر انتخاب واکنش نشان میدهد.این متد رویداد مربوط به انتخاب را دریافت میکند. خب این متد درون اینترفیس List select ionListener قرار دارد، پس برای استفاده از این متد باید از اینترفیس List select ionListener شی ایجاد کنیم.
• میدونم از توضیحات بالا الان گیج شدید!!! کلا توضیحات رو بی خیال! در کل اگر خواستیم با انتخاب سلول های جدول واکنش خاصی داده شود از دستورات زیر استفاده میکنیم:
final JTable jt = new JTable(data, column);
ایجاد جدول مربوطه
jt.setCell select ionEnabled(true);
تنظیم قابلیت انتخاب سلول های جدول
List select ionModel select = jt.get select ionModel();
دریافت جریانی از مدل های انتخاب از جدول مربوطه
تعیین مدل انتخاب که در اینجا مدل تنها یک بار انتخاب در هر لحظه
select .addList select ionListener(new List select ionListener() {
افزودن شی از اینترفیس List select ionListener به شی select
|
• من توضیحات رو زیاد برای یادگیری گرافیک در جاوا نمیپسندم!!! بهترین راه یادگیری جاوا مخصوصا گرافیک اینه که کدها رو با چشمتون خوب ببینید بعد اجرا کنید بعد برا خودتون تغییر بدید کد هارو اینجوری عملی بهتر یادمیگیرید تا توضیحات!!! این کد بالا هم اگر با توضیحات براتون روشن نشد نگران نباشید!! در ایکلیپس یا هر IDE دیگه اجرا کنید و تغییر بدید کاربردشون دستتون میاد.
پیروز و موفق باشید
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |