如何为JTabbedPane标签添加禁用的图标?

向其中添加选项卡时,JTabbedPane可以定义选项卡的图标。在选项卡的启用或禁用状态下,该图标将显示在选项卡标题旁边。为了使用户界面更好,您还可以为选项卡定义禁用的图标。当标签的状态无效,将显示此图标。

要为标签分配禁用的图标,请使用JTabbedPane的setDisabledIconAt(int index, Icon icon)方法。与往常一样,index参数从零开始,这意味着第一个选项卡位于index number处0。该icon参数是选项卡的禁用图标。

package org.nhooo.example.swing;

import javax.swing.*;

import java.awt.*;

public class TabbedPaneDisableIcon extends JPanel {

    private ImageIcon[] disableIcons = {

        new ImageIcon(this.getClass().getResource("/images/test-pass-icon-disable.png")),

        new ImageIcon(this.getClass().getResource("/images/test-fail-icon-disable.png")),

        new ImageIcon(this.getClass().getResource("/images/test-error-icon-disable.png")),

    };

    public TabbedPaneDisableIcon() {        

        initializeUI();

    }

    private void initializeUI() {

        this.setLayout(new BorderLayout());

        this.setPreferredSize(new Dimension(500, 200));

        JTabbedPane pane = new JTabbedPane();

        ImageIcon tab1Icon = new ImageIcon(this.getClass().getResource("/images/test-pass-icon.png"));

        ImageIcon tab2Icon = new ImageIcon(this.getClass().getResource("/images/test-fail-icon.png"));

        ImageIcon tab3Icon = new ImageIcon(this.getClass().getResource("/images/test-error-icon.png"));

        JPanel content1 = new JPanel();

        JPanel content2 = new JPanel();

        JPanel content3 = new JPanel();

        pane.addTab("Success", tab1Icon, content1);

        pane.addTab("Fail", tab2Icon, content2);

        pane.addTab("Error", tab3Icon, content3);

        for (int i = 0; i < pane.getTabCount(); i++) {

            pane.setDisabledIconAt(i, disableIcons[i]);

        }

        // 禁用最后一个选项卡以查看显示的禁用图标。

        pane.setEnabledAt(pane.getTabCount() - 1, false);

        this.add(pane, BorderLayout.CENTER);

    }

    public static void showFrame() {

        JPanel panel = new TabbedPaneDisableIcon();        

        panel.setOpaque(true);

        JFrame frame = new JFrame("JTabbedPane Demo");

        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);        

        frame.setContentPane(panel);        

        frame.pack();        

        frame.setVisible(true);

    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            public void run() {

              TabbedPaneDisableIcon.showFrame();

            }

        });

    }

}

为JTabbedPane选项卡设置禁用的图标

以上是 如何为JTabbedPane标签添加禁用的图标? 的全部内容, 来源链接: utcz.com/z/343204.html

回到顶部