java容器:JTabbedPanel(标签面板) ----的基本用法

类头

 public class JTabbedPane extends JComponent  implements Serializable, Accessible, SwingConstants{}

构造方法

  • public JTabbedPane() 创建一个空的 TabbedPane ,默认标签位置为 JTabbedPane.TOP
  • public JTabbedPane(int tabPlacement) 创建空 TabbedPane与任一指定的选项卡放置: JTabbedPane.TOP , JTabbedPane.BOTTOM , JTabbedPane.LEFT ,或 JTabbedPane.RIGHT 。
  • public JTabbedPane(int tabPlacement,int tabLayoutPolicy)创建一个空的TabbedPane与指定的选项卡布局和选项卡布局策略。标签布局策略可以是: JTabbedPane.WRAP_TAB_LAYOUT或JTabbedPane.SCROLL_TAB_LAYOUT 。

重要方法:(下面所指便签是面板)

//事件相关的方法

  • public void addChangeListener(ChangeListener l) 添加一个 ChangeListener为此tabbedpane。

  • public void removeChangeListener(ChangeListener l) 从此 ChangeListener中移除ChangeListener。

//与标签位置相关的方法

  • public int getTabPlacement() 返回此标签页窗格的标签页的位置。 对应的:public void setTabPlacement(int tabPlacement) 设置此标签页窗格的标签位置。 可能的值是JTabbedPane.TOP ,JTabbedPane.BOTTOM , JTabbedPane.LEFT,JTabbedPane.RIGHT 。默认值(如果未设置)为SwingConstants.TOP 。

//与当前选择标签相关的方法

  • public int getSelectedIndex() 返回此选项卡窗格的当前选择的索引。 如果没有当前选择的选项卡,则返回-1。

  • public void setSelectedIndex(int index) 设置此选项卡窗格的所选索引。 索引必须是有效的选项卡索引或-1,表示不应选择任何选项卡(也可以在标签页窗格中没有选项卡时使用)。 如果在tabbedpane包含一个或多个选项卡时指定了-1值,则结果将被实现定义。

  • public Component getSelectedComponent() 返回此选项卡窗格当前选定的组件。 如果没有当前选择的选项卡,则返回null 。

  • public void setSelectedComponent(Component c) 设置此选项卡窗格的选定组件。 这将自动将selectedIndex设置为与selectedIndex对应的索引。

//与增加标签相关的方法

  • public void insertTab(String title,Icon icon,Component component, String tip, int index) 在给定的索引上插入给定组件的新选项卡,由给定的标题和/或图标表示,其中任一个可能为 null 。
    title - 标签上显示的标题
    icon - 要在标签上显示的图标
    component - 单击此选项卡时要显示的组件。
    tip - 要为此选项卡显示的工具提示
    index - 插入新标签的位置( > 0 and <= getTabCount() )
    注意:对应的有addTab方法
    public void addTab(String title, Icon icon, Component component, String tip)
    而且此方法的参数一个依此1个2个3个到最多的4个

//与删除标签相关的方法

  • public void removeTabAt(int index) 删除index位置的标签 。 该组件其可见性将重置为true,以确保在添加到其他容器时可见。 即此时删除的标签只是取消关联,并不删除组件

  • public void remove(Component component) 删除指定的Component从JTabbedPane 。 如果component为null,该方法不执行任何操作。 结果组件不复存在。对应的有public void remove(int index)

  • public void removeAll() 从 tabbedpane删除所有选项卡及其相应的 tabbedpane 。

//与选项卡数目有关的方法

  • public int getTabCount() 返回此 tabbedpane中的选项卡数。

  • public int getTabRunCount()返回当前用于显示选项卡的选项卡运行次数。

//背景色和前景色

  • public Color getBackgroundAt(int index) 返回标签背景颜色 index 。

  • public Color getForegroundAt(int index) 返回标签前景色为 index 。

  • public void setBackgroundAt(int index, Color background) 在设置背景颜色index到background可以是null ,在这种情况下选项卡的背景色默认为背景颜色tabbedpane 。 如果该索引中没有选项卡,则会引发内部异常。

  • public void setForegroundAt(int index, Color foreground) 将前景色设置为index至foreground ,可以为null ,…

//与所选标签是否可用的方法

  • public void setEnabledAt(int index,boolean enabled) 设置是否启用index的选项卡。 如果该索引中没有选项卡,则会引发内部异常。
    参数
    index - 应该启用/禁用的选项卡索引
    enabled - 是否应启用该选项卡

  • public void setComponentAt(int index, Component component) 将组件设置为component至index 。 如果该索引中没有选项卡,则会引发内部异常。
    参数
    index - 要放置此组件的选项卡索引
    component - 选项卡的组件

设置快捷键

  • public void setMnemonicAt(int tabIndex, int mnemonic)
    参数
    tabIndex - 助记符所指的标签的索引
    mnemonic - 表示助记符的关键代码

//设置标签页名字的字体

  • setFont(font)

实例

package com.layoutPackage;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.KeyEvent;

public class JTabPanel {
    JFrame jFrame = new JFrame("JTabPanel Demo");
    Container contentPane;
    JTabbedPane jTabbedPane;
    int jPanelLabNum = 6;

    //加于jTabbedPane的五张面板
    JPanel[] jPanels = new JPanel[5];

    public static void main(String[] args) {
        JTabPanel jTabPanel = new JTabPanel();
        jTabPanel.go();
    }

    public void go(){
        contentPane = jFrame.getContentPane();
        jTabbedPane = new JTabbedPane(JTabbedPane.TOP);
        contentPane.add(jTabbedPane);

        designPanel();

        jFrame.setDefaultCloseOperation(3);
        jFrame.setVisible(true);
        jFrame.setBounds(500, 50, 700, 550);
    }

    protected void designPanel(){
        //创建面板
        jPanels[0] = new JPanel();
        jPanels[1] = new JPanel();
        jPanels[2] = new JPanel();
        jPanels[3] = new JPanel();
        jPanels[4] = new JPanel();

        //设置面板的背景色
        jPanels[0].setBackground(Color.RED);
        jPanels[1].setBackground(Color.BLUE);
        jPanels[2].setBackground(Color.GREEN);
        jPanels[3].setBackground(Color.YELLOW);
        jPanels[4].setBackground(Color.CYAN);

        //将面板加入jTabbedPanel中
        jTabbedPane.add("Panel 1", jPanels[0]);
        jTabbedPane.add("Panel 2", jPanels[1]);
        jTabbedPane.add("Panel 3", jPanels[2]);
        jTabbedPane.add("Panel 4", jPanels[3]);
        jTabbedPane.add("Panel 5", jPanels[4]);
        jTabbedPane.add("Lable 1", new JLabel("This is a  1 Lable"));
        Font font = new Font("华文彩云", Font.BOLD, 15);

        //设置标签页名字的字体
        jTabbedPane.setFont(font);

        //设置标签也对应的快捷键
        jTabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
        jTabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
        jTabbedPane.setMnemonicAt(2, KeyEvent.VK_3);
        jTabbedPane.setMnemonicAt(3, KeyEvent.VK_4);
        jTabbedPane.setMnemonicAt(4, KeyEvent.VK_5);
        jTabbedPane.setMnemonicAt(5, KeyEvent.VK_6);

        //设置不可选中的标签页
        jTabbedPane.setEnabledAt(2, false); //设置3个标签页不可选

        //设置标签页的背景色
        jTabbedPane.setBackground(Color.BLACK);
        
        //设置标签页的前景色
        jTabbedPane.setForegroundAt(0, Color.RED);
        jTabbedPane.setForegroundAt(1, Color.BLUE);
        jTabbedPane.setForegroundAt(2, Color.GREEN);
        jTabbedPane.setForegroundAt(3, Color.YELLOW);
        jTabbedPane.setForegroundAt(4, Color.CYAN);
        jTabbedPane.setForegroundAt(5, null);
        
        //设置标签面板的changeListener,注册事件
        jTabbedPane.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                System.out.println("这是第:" + (jTabbedPane.getSelectedIndex() + 1) + "  个标签页: " );
            }
        });
    
    }
}

运行结果如图
在这里插入图片描述

  • 14
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 这个错误提示是因为在使用Java命令时,使用了无效的参数--add-modules。这个参数是在Java 9及以上版本中引入的,用于指定需要使用的模块。如果你使用的是Java 8或更低版本,那么这个参数是无效的,会导致出现这个错误。解决方法是升级到Java 9及以上版本,或者去掉这个无效的参数。 ### 回答2: Java 9 引入了模块系统,其中包含了一个新的语法:“--add-modules”。它代表我们需要将特定的模块添加到模块路径中以供使用。但是,如果我们对早期版本的 Java 进行升级并使用 --add-modules 符号时,可能会看到一个错误信息:“无效的标记: --add-modules”。 这是因为这个标记是仅用于 Java 9 及以上版本的。如果你使用的是 Java 8 或更低版本,那么 --add-modules 将会被认为是未知的标志,因此会出现错误。 此错误的解决方案之一是使用适当版本的 Java。如果你要使用 --add-modules 语法,则必须至少使用 Java 9 或更高版本。 如果你的应用程序不能升级到新版本的 Java,则你必须避免使用 --add-modules 标志,并改用旧的类路径来加载依赖项。 另一个可能的解决方案是,如果你希望使用这个语法,但又不能升级到 Java 9 或更高版本,那么你可以考虑使用第三方工具,例如 Jigsawbackport 或 JLink。 这些工具可以在早期版本的 Java 中使用模块系统,包括 --add-modules 标志。 总之,如果你看到了“无效的标记:--add-modules”的错误信息,则说明你正尝试在不支持该语法的 Java 版本中使用 --add-modules。你可以通过升级到新版本的 Java 或使用第三方工具来解决这个错误。 ### 回答3: 这个错误信息通常显示在 Java 应用程序启动时,它表示你正在尝试使用 Java 9 或更高版本的模块化功能,但你的命令行参数中没有正确的模块相关选项。 在 Java 9 之后的版本中,引入了一种称为模块化的编程模型。这种模型将 Java 应用程序拆分成更小、更易于管理的可重用组件,称为模块。这有助于简化应用程序的开发和部署。但是,为了正确地使用模块化,需要在启动时指定一些额外的选项。 "--add-modules" 是 Java 9 之后版本中用于指定应用程序所需的模块的选项。你可能会看到这个错误信息,因为你的应用程序缺少 "--add-modules" 选项或选项值不正确。你可以通过为命令行添加正确的选项来解决这个问题。 例如,如果你要运行名为 "com.example.Main" 的主类,同时需要使用名为 "module1" 和 "module2" 两个模块,你可以在命令行中添加以下选项: java --add-modules module1,module2 com.example.Main 确保你的命令行中包含正确的模块和类名,以及正确的选项和选项值,这样你就可以成功启动应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值