JTabbedPane
- JTabbedPane ขยายจาก JComponent มองเห็นได้เพียงแท็บเดียวในเวลาเดียวกัน
- แต่ละแท็บเชื่อมโยงกับคอมโพเนนต์เดียวที่แสดงเมื่อเลือกแท็บนั้น
- JTabbedPane สร้าง ChangeListener เมื่อเลือกแท็บ
- สามารถ เพิ่มหลายแท็บใน JTabbedPane เดียว ได้ เมธอดสำคัญคือ addTab(), fireStateChanged(), getTabPlacement(), setSelectedIndex(), getTabCount() เป็นต้น
ตัวอย่างโค้ด
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class NestedJTabbedPaneTest extends JFrame {
public NestedJTabbedPaneTest() {
setTitle("Nested JTabbedPane test");
setLayout(new BorderLayout());
JTabbedPane tabbedPane = new JTabbedPane();
add(BorderLayout.CENTER, tabbedPane);
createNestedTab(tabbedPane, 1);
setSize(375, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
protected void createNestedTab(JTabbedPane jtp, int count) {
if (count > 5) return;
JTabbedPane tp = new JTabbedPane();
tp.setTabPlacement(getNextOrientation(jtp.getTabPlacement()));
jtp.addTab("Tab #" + count, tp);
createNestedTab(tp, count + 1);
}
private int getNextOrientation(int tabPlacement) {
if (tabPlacement == JTabbedPane.TOP) return JTabbedPane.RIGHT;
if (tabPlacement == JTabbedPane.RIGHT) return JTabbedPane.BOTTOM;
if (tabPlacement == JTabbedPane.BOTTOM) return JTabbedPane.LEFT;
else return JTabbedPane.TOP;
}
public static void main(String[] args) {
new NestedJTabbedPaneTest();
}
}
ผลลัพธ์
