Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách thêm tab mới vào JTabbedPane từ JMenu trong Java

JTabbedPane

  • JTabbedPane mở rộng JComponent cung cấp truy cập dễ dàng đến nhiều panel.
  • Mỗi tab liên kết một component đơn lẻ hiển thị khi tab được chọn.
  • Tạo giao diện ChangeListener khi tab được chọn.
  • Các phương thức quan trọng: add(), addTab(), fireStateChanged(), createChangeListener(), setSelectedIndex(), getTabCount().

Ví dụ

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();
    }
}

Kết quả

Cách thêm tab mới vào JTabbedPane từ JMenu trong Java