JavaSwing_3.4: JTabbedPane(選項卡面板)__Java

來源:互聯網
上載者:User

本文連結: http://blog.csdn.net/xietansheng/article/details/74366541

Java Swing 圖形介面開發(目錄) 1. 概述

官方JavaDocsApi: javax.swing.JTabbedPane

JTabbedPane,選項卡面板。它允許使用者通過點擊給定標題或表徵圖的選項卡,在一組組件之間進行切換顯示。

常用構造方法:

/** * 參事說明: *     tabPlacement: 選項卡標題的位置, 值為 JTabbedPane.TOP、JTabbedPane.BOTTOM、 *                   JTabbedPane.LEFT 或 JTabbedPane.RIGHT, 預設為 TOP * *     tabLayoutPolicy: 選項卡位置不能放入所有的選項卡時,放置選項卡的策略, *                      值為 JTabbedPane.WRAP_TAB_LAYOUT 或 JTabbedPane.SCROLL_TAB_LAYOUT */JTabbedPane()JTabbedPane(int tabPlacement)JTabbedPane(int tabPlacement, int tabLayoutPolicy)

建立選項卡:

/** * 參數說明: *     title: 選項卡的標題 *     icon: 選項卡的表徵圖 *     tip: 當滑鼠移到該選項卡時,懸浮提示的文本 *     component: 選中該選項卡時顯示的內容組件 */void addTab(String title, Component component)void addTab(String title, Icon icon, Component component)void addTab(String title, Icon icon, Component component, String tip)/** * 在指定索引位置插入一個選項卡 */void insertTab(String title, Icon icon, Component component, String tip, int index)

移除選項卡:

// 移除指定位置的選項(下面兩個方法完全一致)void removeTabAt(int index)void remove(int index)// 移除指定內容控制項的選項卡void remove(Component component)// 移除所有選項卡void removeAll()

選項卡相關操作:

// 設定當前選中的選項卡void setSelectedIndex(int index)// 擷取當前選中的選項卡索引int getSelectedIndex()// 擷取當前選中的選項卡對應的內容組件Component getSelectedComponent()// 設定 index 位置的選項卡的標題void setTitleAt(int index, String title)// 設定 index 位置的選項卡的表徵圖void setIconAt(int index, Icon icon)// 設定 index 位置的選項卡是否可用void setEnabledAt(int index, boolean enabled)// 將 index 位置的內容組件設定為 componentvoid setComponentAt(int index, Component component)// 擷取選項卡的數量int getTabCount()/** * 自訂選項卡標題位置的組件, 這裡的 titleComponent 將放到選項卡標題位置。 * 應用情境: 例如, 在選項卡標題位置添加一個關閉按鈕, 點擊按鈕移除選項卡。 */void setTabComponentAt(int index, Component titleComponent)

狀態監聽器:

// 添加選項卡選中狀態改變的監聽器void addChangeListener(ChangeListener l)
2. 代碼執行個體
package com.xiets.demo;import javax.swing.*;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import java.awt.*;public class Main {    public static void main(String[] args) {        JFrame jf = new JFrame("測試視窗");        jf.setSize(300, 300);        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);        jf.setLocationRelativeTo(null);        // 建立選項卡面板        final JTabbedPane tabbedPane = new JTabbedPane();        // 建立第 1 個選項卡(選項卡只包含 標題)        tabbedPane.addTab("Tab01", createTextPanel("TAB 01"));        // 建立第 2 個選項卡(選項卡包含 標題 和 表徵圖)        tabbedPane.addTab("Tab02", new ImageIcon("bb.jpg"), createTextPanel("TAB 02"));        // 建立第 3 個選項卡(選項卡包含 標題、表徵圖 和 tip提示)        tabbedPane.addTab("Tab03", new ImageIcon("bb.jpg"), createTextPanel("TAB 03"), "This is a tab.");        // 添加選項卡選中狀態改變的監聽器        tabbedPane.addChangeListener(new ChangeListener() {            @Override            public void stateChanged(ChangeEvent e) {                System.out.println("當前選中的選項卡: " + tabbedPane.getSelectedIndex());            }        });        // 設定預設選中的選項卡        tabbedPane.setSelectedIndex(1);        jf.setContentPane(tabbedPane);        jf.setVisible(true);    }    /**     * 建立一個面板,面板中心顯示一個標籤,用於表示某個選項卡需要顯示的內容     */    private static JComponent createTextPanel(String text) {        // 建立面板, 使用一個 1 行 1 列的網格布局(為了讓標籤的寬高自動撐滿面板)        JPanel panel = new JPanel(new GridLayout(1, 1));        // 建立標籤        JLabel label = new JLabel(text);        label.setFont(new Font(null, Font.PLAIN, 50));        label.setHorizontalAlignment(SwingConstants.CENTER);        // 添加標籤到面板        panel.add(label);        return panel;    }}

結果展示:

PS: 測試的截圖是在 MAC OS X 環境下啟動並執行截圖,該組件在 Windows 環境下的顯示效果可能有較大差別。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.