در این قسمت تیم کدگیت را با آموزش JTabbedPane در جاوا همراهی کنید. ابتدا در این جلسه کلاس JTabbedPane را معرفی کرده و متدهای آن را توضیح خواهیم داد. سپس با پیاده سازی یک مثال واقعی از این کلاس، این جلسه را به پایان میبریم. همچنین پیشنهاد میکنیم قبل از مطالعه این جلسه، آموزشهای گذشته گرافیک در جاوا را مطالعه کنید.
JTabbedPane در جاوا
JTabbedPane یکی از کلاسهای موجود در کتابخانه Swing است. در دنیای کامپیوتر از Tab برای نمایش چندین صفحه در کنار یکدیگر استفاده میشود. JTabbedPane این قابلیت را در جاوا قرار داده است. به عنوان تعریفی دیگر از این کلاس، JTabbedPane برای جابجایی بین کمپوننتهای گرافیکی با کلیک بر روی یک Tab استفاده میشود . در لیست زیر متدهای کلاس JTabbedPane که بیشتر استفاده میشود را آوردهایم:
- ()JTabbedPane : متد Constructor است و یک TabbedPane خالی را در جاوا ایجاد میکند. همچنین محل قرار گیری Tabها (در صورتی که بعد اضافه شود) بالای صفحه است.
- (JTabbedPane(int tabPlacement : متد Constructor است و یک TabbedPane خالی را در جاوا ایجاد میکند. همچنین محل قرار گیری Tabها (در صورتی که بعد اضافه شود) بر اساس پارامتر ورودی متد مشخص میشود.

مثال JTabbedPane در جاوا
در این قسمت مثالی از کلاس JTabbedPane پیاده سازی خواهیم کرد به طوری که خروجی برنامه تصویر بالا باشد. یک JTabbedPane در صفحه JFrame ایجاد کرده که دارای سه Tab میباشد(Main ، Visit و Help ). در Tab اول یعنی Main یک TextArea قرار دادیم و بقیه Tabها خالی است و تنها در رنگ پس زمینه با یکدیگر تفاوت دارند. کد این مثال به صورت زیر است:
public class TabbedPaneExample {
JFrame f;
TabbedPaneExample() {
f = new JFrame();
JTextArea ta = new JTextArea(200, 200);
JPanel p1 = new JPanel();
p1.add(ta);
JPanel p2 = new JPanel();
p2.setBackground(Color.blue);
JPanel p3 = new JPanel();
p3.setBackground(Color.orange);
JTabbedPane tp = new JTabbedPane();
tp.setBounds(50, 50, 200, 200);
tp.add("main", p1);
tp.add("visit", p2);
tp.add("help", p3);
f.add(tp);
f.setSize(400, 400);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String[] args) {
new TabbedPaneExample();
}
}
همانطور که در کد بالا مشاهده میکنید کلاسی نوشتیم که در آن سه JPanel برای قرار دادن در JTabbedPane ایجاد کرده است. با تنظیمات این پنلها (تغییر رنگ یا قرار دادن Jtext در آنها)، هر کدام را به JTabbedPane اضافهکردهایم. در آخر در Main، کلاس نوشته شده را صدا زدیم.