Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีเพิ่มแท็บใหม่ใน JTabbedPane จาก JMenu ใน Java

JTabbedPane

  • JTabbedPane ขยายจาก JComponent ให้เข้าถึงหลายแผ่นได้ง่าย
  • แต่ละแท็บเชื่อมโยงกับคอมโพเนนต์เดียว แสดงเมื่อเลือกแท็บนั้น
  • JTabbedPane สร้าง ChangeListener เมื่อเลือกแท็บ
  • เมธอดสำคัญ: add(), addTab(), fireStateChanged(), createChangeListener(), setSelectedIndex(), getTabCount()

ตัวอย่างโค้ด

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

public class JTabbedPaneTest extends JFrame implements ActionListener {
    JTabbedPane tabbedPane;
    int ntabs = 0;

    public JTabbedPaneTest() {
        getContentPane().setLayout(new BorderLayout());
        tabbedPane = new JTabbedPane();
        createTab();
        getContentPane().add(BorderLayout.CENTER, tabbedPane);
        setJMenuBar(createMenuBar());
        tabbedPane.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent ce) {
                System.out.println("Tab " + (tabbedPane.getSelectedIndex() + 1) + " is selected");
            }
        });
        setTitle("JTabbedPane Test");
        setLocationRelativeTo(null);
        setSize(new Dimension(350, 275));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    protected JMenuBar createMenuBar() {
        JMenuBar menuBar = new JMenuBar();
        JMenu menu = new JMenu("JTabbedPane");
        JMenuItem menuItem = new JMenuItem("Create new tab");
        menuItem.addActionListener(this);
        menu.add(menuItem);
        menuBar.add(menu);
        return menuBar;
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("Create new tab")) {
            createTab();
        }
    }

    protected void createTab() {
        ntabs++;
        tabbedPane.addTab("Tab #" + ntabs, new JLabel("Tab #" + ntabs));
    }

    public static void main(String[] args) {
        new JTabbedPaneTest();
    }
}

ผลลัพธ์

วิธีเพิ่มแท็บใหม่ใน JTabbedPane จาก JMenu ใน Java