در این قسمت تیم کدگیت را با آموزش Jtable در جاوا همراهی کنید. در این آموزش به توضیح کوتاهی در مورد Jtable خواهیم پرداخت سپس متدهای این کلاس را معرفی و با زدن دو مثال ساده از این کلاس آموزش را به پایان میرسانیم. همچنین این آموزش شامل پیش نیازهایی مانند شی گرایی، آرایه و متد در جاوا و … میباشد که پیشنهاد میکنیم ابتدا پیش نیازها را مطالعه کنید.
Jtable در جاوا
JTable در جاوا برای نمایش سطری و ستونی اطلاعات به کار میرود. این کلاس هیچ اطلاعاتی را ذخیره نمیکند و فقط برای نمایش اطلاعات استفاده میشود. برای ذخیره اطلاعات از TableModel استفاده میشود که کلاس DefaultTableModel یک پیاده سازی از TableModel است. Jtable برای نمایش اطلاعات از DefaultTableModel استفاده میکند.
تعدادی از متدهای کلاس JTable در جاوا شامل موارد زیر میباشد:
- ()Jtable: متد Constructor میباشد و یک جدول خالی و بدون اطلاعات را میسازد.
- (Jtable(Object[][] rows, Object columns : متد Constructor میباشد و یک جدول با اطلاعات ورودی ساخته و نمایش داده میشود.
- ()setCellSelectionEnabled: فعال یا غیر فعال کردن Select یک سطر یا سلول.
- (getValueAt(int row,int column: دریافت اطلاعات یک سلول خاص.
مثال اول Jtable در جاوا
همانطور که گفته شد Jtable برای نمایش اطلاعات استفاده میشود. در این جا یک جدول را در Frame قرار میدهیم و اطلاعات آن را با استفاده از Constructor به Jtable خواهیم داد. کد این مثال به صورت زیر میباشد:
public class TableExample {
JFrame f;
TableExample() {
f = new JFrame();
String data[][] = { { "101", "Saeed", "900000" },
{ "102", "Ali", "780000" }, { "101", "Mohammad", "700000" } };
String column[] = { "ID", "NAME", "SALARY" };
JTable jt = new JTable(data, column);
jt.setBounds(30, 40, 200, 300);
JScrollPane sp = new JScrollPane(jt);
f.add(sp);
f.setSize(300, 400);
f.setVisible(true);
}
public static void main(String[] args) {
new TableExample();
}
}
در کد بالا یک Frame را ایجاد سپس دو آرایه Data و Column را برای نمایش در جدول ساختیم. در ادامه جدول را به Frame خود اضافه کردیم. دقت داشته باشید که در کد بالا از کلاسی به نام JScrollPane استفاده شده است. این کلاس با هدف Scroll کردن استفاده میشود و زمانیکه اطلاعات ما بیشتر از سایز Frame باشد، کنترل را دست گرفته اطلاعات را با Scroll نمایش میدهد.
مثال دوم Jtable در جاوا
مثال دوم Jtable ادامه مثال اول بوده و فقط تنها تغییر نسبت به مثال اول این است که هنگام کلیک کاربر بر روی یک سلول، اطلاعات آن سلول را در کنسول نمایش میدهیم. کد این مثال به صورت زیر میباشد:
public class TableExample {
public static void main(String[] a) {
JFrame f = new JFrame("Table Example");
String data[][] = { { "101", "Saeed", "900000" },
{ "102", "Ali", "780000" }, { "101", "Mohammad", "700000" } };
String column[] = { "ID", "NAME", "SALARY" };
final JTable jt = new JTable(data, column);
jt.setCellSelectionEnabled(true);
ListSelectionModel select = jt.getSelectionModel();
select.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
select.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
String Data = null;
int[] row = jt.getSelectedRows();
int[] columns = jt.getSelectedColumns();
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 selected is: " + Data);
}
});
JScrollPane sp = new JScrollPane(jt);
f.add(sp);
f.setSize(300, 200);
f.setVisible(true);
}
کد مثال دوم jtable بسیار شبیه به کد اول بوده و فقط چندین متد به آن اضافه کردیم. متد getSelectionModel نحوه انتخاب سلولها در جدول ها را برمیگرداند (نحوه انتخاب میتواند به صورت یک سلول یا یک سطر باشد). متد addListSelectionListener برای تنظیم کلیک کاربر بوده است و یک interface به عنوان ورودی میگیرد. متد value change وقتی کاربر بر روی جدول کلیک کند اجرا خواهد شد. درون این متد عناصر انتخاب شده توسط کاربر خوانده شده (با استفاده از getValueAt) و در کنسول نمایش میدهیم.
استفاده از TableModel در جدول ها میتواند اطلاعات را پویاتر وارد جدول کند که در مثالهای آینده گرافیک در جاوا از آنها استفاده خواهیم کرد.