استفاده از JTable در جاوا- قسمت اول

JTable در جاوا یک کامپوننت برای نمایش اطلاعات به صورت طبقه بندی شده می باشد. دقت کنید که Jtable صرفا برای نمایش اطلاعات است نه برای نگهداری اطلاعات.

برای ایجاد یک JTableدر جاوا به دو صورت می توان عمل کرد

  1. ایجاد یک object از کلاس JTable
  2. نوشتن کلاسی که از JTable ارث بری می کند.

من قصد دارم فعلا روش اول را توضیح دهم. در روش اول همانطور که در بالا گفته شد باید یک شی از کلاس JTable ایجاد کنیم. برای این کار کافی است که فقط دستور زیر را بنویسیم:

JTable table=new JTable();

اما این کار فقط باعث ایجاد جدولی خالی می شود که هیچ اطلاعاتی در آن وجود ندارد.

JTable از ۲قسمت اصلی تشکیل می شود، نام ستون ها (column) و داده های جدول (data) .

برای داشتن یک جدول کامل باید هم نام ستون ها و هم اطلاعات جدول را برای JTable ارسال کنیم. به ۲ روش میتوان نام ستون ها و اطلاعات سطر ها را به JTable داد.

  1. استفاده از آرایه یا Vector برای مشخص کردن اطلاعات جدول
  2. ایجاد یک TableModel برای مشخص کردن اطلاعات جدول

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

ابتدا باید بدنه کلی برنامه را مشخص کنیم . برای این کار یک کلاس تعریف می کنیم که از JFrame ارث بری داشته باشد و متد سازنده ی کلاس ، کد های لازم برای ایجاد یک پنجره خالی را اضافه می کنیم.

public class JTableDemo extends  JFrame{
    public JTableDemo()  {
        super("JTable Demo");
        setSize(800, 600);
        setLayout(new FlowLayout());
        setDefaultCloseOperation(EXIT_ON_CLOSE); 
    }
}

با این کد ها ما یک پنجره خالی خواهیم داشت. حال وقت آن است که نام ستون ها و اطلاعات سطر ها را مشخص کنیم. برای مشخص کردن نام ستون ها از یک آرایه یا یک Vector استفاده می کنیم.

private String[] col = new String[]{
        "col-0", "col-1", "col-2", "col-3"
 };

سپس برای مشخص کردن اطلاعات سطر های جدول از یک آرایه ی دو بعدی استفاده میکنیم:

private String[][] data = new String[][]{
        {"val-00", "val-01", "val-02", "val-03"},
        {"val-10", "val-11", "val-12", "val-13"},
        {"val-20", "val-21", "val-22", "val-23"},
        {"val-30", "val-31", "val-32", "val-33"}
};

برای اطلاعات سطر ها همچنین می توان از یک Vector که حاوی مجموعه ای از Vectorها است استفاده کنیم. تا اینجا کد های ما چیزی شبیه به کد زیر ایت:

public class JTableDemo extends JFrame {

    private String[] col = new String[]{
        "col-0", "col-1", "col-2", "col-3"
    };
    private String[][] data = new String[][]{
        {"val-00", "val-01", "val-02", "val-03"},
        {"val-10", "val-11", "val-12", "val-13"},
        {"val-20", "val-21", "val-22", "val-23"},
        {"val-30", "val-31", "val-32", "val-33"}
    };

    public JTableDemo() {
        super("JTable Demo");
        setSize(800, 600);
        setLayout(new FlowLayout());
        setDefaultCloseOperation(EXIT_ON_CLOSE);

    }
}

حال که اطلاعات تشکیل دهنده ی جدول مشخص شد، باید یک JTable ایجاد و اطلاعات را به آن معرفی کنیم. برای این کار از کد زیر استفاده میکنیم:

JTable table = new JTable(data, col);

تا اینجا جدولی داریم که شامل ۴ سطر و ۴ ستون است، اما هنوز به نمایش در نیامده است. برای نمایش جدول از کد زیر می توان استفاده کرد:

JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);

خب . تبریک می گویم. ایجاد Jtable تکمیل شد. حال فقط باید Jframe که همان پنجره ی ما هست را نمایش دهیم برای این کار در متد main کد های زیر را اضافه میکنیم:

JTableDemo jTableDemo = new JTableDemo();
jTableDemo.setVisible(true);

کد های نهایی به صورت زیر است

import java.awt.FlowLayout;
import javax.swing.*;

public class JTableDemo extends JFrame {

    private JTable table;
    private String[] col = new String[]{
        "col-0", "col-1", "col-2", "col-3"
    };
    private String[][] data = new String[][]{
        {"val-00", "val-01", "val-02", "val-03"},
        {"val-10", "val-11", "val-12", "val-13"},
        {"val-20", "val-21", "val-22", "val-23"},
        {"val-30", "val-31", "val-32", "val-33"}
    };

    public JTableDemo() {
        super("JTable Demo");
        setSize(500, 500);
        setLayout(new FlowLayout());
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        table = new JTable(data, col);
        JScrollPane scrollPane = new JScrollPane(table);
        add(scrollPane);

    }

    public static void main(String args[]) {
        JTableDemo jTableDemo = new JTableDemo();
        jTableDemo.setVisible(true);
    }
}

استفاده از JTable در جاوا- قسمت اول

امیدوارم که این آموزش برای شما مفید بوده باشد.

در قسمت های بعدی آموزش به بررسی TableModel و مدیریت پیشرفته ی JTable خواهم پرداخت.

موفق و سربلد باشید.

امید فرجی

سلام، امید فرجی هستم از همدان. بیشتر از 7 سال میشه که در حوضه برنامه نویسی جاوا و اندروید فعالیت دارم و در این مدت پروژه های تجاری مختلفی انجام دادم. همچنین از سال 91 سایت آموزش تخصصی جاوا را راه اندازی کردم و در خدمت شما هستم. امیدوارم مفید بوده باشم. برای سفارش پروژه هاتون باهام تماس بگیرید.

شما ممکن است این را هم بپسندید

۱۰ پاسخ‌ها

  1. کاوه گفت:

    ممنون از مطلب خوبتون. امیدوارم قسمت بعدی رو هر چه زودتر قرار بدید.

    • امید فرجی گفت:

      چشم آقا کاوه. سعی میکنم هر چه زودتر آموزش بعدی و آموزش های پیشرفته تری رو در موضوع های مختلف روی سایت قرار بدم.

  2. حبیب گفت:

    سلام لطفا فردا مای اسکیول رو بزارید خیلی لازم دارم با تشکر

    • سلام آقا حبیب.
      اگه منظورتون آموزش اتصال جاوا به mysql هست، باید بگم که ساخت یه آموزش به این راحتی ها نیست که تا فردا آماده بشه.
      ولی از اونجایی که اتصال به دیتابیس یه بخش مهم برنامه نویسیه، تمام سعیمو میکنم که در اولین فرصت آموزشش رو قرار بدم.

    • حبیب گفت:

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

    • خواهش میکنم.
      امیدوارم شوق دوستان اینقدری باشه که با نظراتشون کاری کنن که در من هم شوق ادامه ایجاد آموزش ها به وجود بیاد.
      به هر حال سایت در مرحله آموزشی به سر میبره و از اواسط بهمن ماه اموزش های تخصصی شروع خواهد شد. و کیفیت آموزش ها به همین نظرات شما بستگی داره.
      با تشکر

  3. رسول گفت:

    سلام. سایتتون عالیه! اگه میشه آموزش جاوا گرافیکی (gui) هم بذارید. با تشکر

  4. mohamad گفت:

    سلام.اموزش های بسیار عالی دارید بخصوص اموزش ویدیی ک بسیار عالی هستند اما متاسفانه قسمت ۳و۴ این سری لینک ویدیو هاشون یکی هست(لینک فیلم قسمت۴ به لینک فیلم قسمت سه میره) بازم ممنون امیدوارم این سری اموزش ها رو تا پایان ادامه دهید.درضمت لطفا محیط اکلیپس رو در این سری تدریس کنید.باتشکر

  5. یاسمن گفت:

    سلام وقتتون بخیر میخواستم اطلاعات دیتابیسمو از طریق JTable نمایش بدم این خطا ها رو میده امکانش هست کمکم کنید
    java.lang.ClassNotFoundException: com.sqlserver.jdbc.Driver
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at y.my.main(my.java:27)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *