JAVA SWING 使用特殊容器 JTabbedPane

本文展示了如何使用Java Swing的JTabbedPane组件创建一个标签页,其中包括设置标签的位置、布局策略,以及添加、插入、修改和删除标签页的方法。此外,还演示了如何设置当前选中的标签页、启用/禁用标签页、更改标题和提示文本,以及添加改变监听器来响应用户选择变化。最后,给出了一个实际运行的示例,展示了JTabbedPane的使用效果。
摘要由CSDN通过智能技术生成
package zikao.swing;

import javax.swing.*;

public class JTabbedPanesTest {
    /*
    JTabbedPanes的构造方法:

    JTabbedPanesTest(int tabPlacement,int tabLayoutPolicy)

    tabPlacement: 指定标签标题的放置位置,可以选择SwingConstants中的四个常量:
    TOP,LEFT,BOTTOM,RIGHT

    tabLayoutPolicy: 指定当窗口不能容纳标签页标题时的布局设置,有两种:
    JTabbedPanes.WRAP_TAB_LAYOUT 垂直排列
    JTabbedPanes.SCROLL_TAB_LAYOUT 拥有滑动条

    2,通过JTabbedPanes对象堆标签进行增删改查

    addTab(String title, Icon icon, Component component,String tip): 添加标题
    title:标签的名称
    icon:标签的图表
    component:标签对应的组件
    tip: 光放到标签上的提示

    insertTab(String title, Icon icon, Component component,String tip,int index):插入标签页
    title:标签的名称
    icon:标签的图表
    component:标签对应的组件
    tip: 光放到标签上的提示
    index: 在那个索引处插入标签页

    setComponentAt(int index,Component component):修改标签页对应组件
    index: 修改那个索引处的标签
    component: 标签对应组件

    removeTabAt(int index):
    index: 删除那个索引处的组件

    3,设置当前显示的标签页
    setSelectedIndex(int index): 设置那个索引处标签被选中

    4,设置JTabbedPane的其他属性
    setDisabledIconAt(int index,Icon disabledIcon): 将指定位置的禁用图标设置为icon,该图标
    也可以是null表示不适用禁用图标.

    setEnabledAt(int index,boolean enabled): 设置指定位置的标签页是否启动

    setTitleAt(int index,String title): 设置指定位置标签页的标题为title,该标题可以为null

    setToolTipTextAt(int index,String toolTipText): 设置指定位置标签页的提示文本

    5,为JTabbedPane设置监听器
    addChangeListener(ChangeListener I)

     */
    JFrame jFrame = new JFrame("测试JTabbedPanes");
    JTabbedPane tabbedPane = new JTabbedPane(SwingConstants.LEFT, JTabbedPane.SCROLL_TAB_LAYOUT);

    public void init() {
        //添加标签
        tabbedPane.addTab("用户管理", null, new JList<>(new String[]{"用户名一", "用户名二", "用户名三"}));
        tabbedPane.addTab("商品管理", new JList<>(new String[]{"商品一", "商品二", "商品三"}));
        tabbedPane.addTab("订单管理", null, new JList<>(new String[]{"订单一", "订单二", "订单三"}));

        //完成设置
        tabbedPane.setEnabledAt(0, false);
        tabbedPane.setSelectedIndex(1);
        tabbedPane.addChangeListener(e -> {
            int selectedIndex = tabbedPane.getSelectedIndex();
            JOptionPane.showMessageDialog(jFrame, "当前选中了第" + selectedIndex + "个标签");
        });
        jFrame.add(tabbedPane);
        jFrame.setBounds(400, 400, 400, 400);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.setVisible(true);
    }

    public static void main(String[] args) {
        new JTabbedPanesTest().init();
    }
}

                                                                     效果图请看评论区B站视频连接

回答: 在Java Swing中,要删除容器的内容,可以使用以下方法之一: 1. 使用容器的removeAll()方法,该方法会删除容器中的所有组件。例如,如果要删除名为container的容器中的所有内容,可以使用container.removeAll()来实现。 2. 使用容器的remove(Component comp)方法,该方法会删除指定的组件。例如,如果要删除名为component的组件,可以使用container.remove(component)来实现。 3. 使用容器的remove(int index)方法,该方法会删除指定索引位置的组件。例如,如果要删除容器中索引为index的组件,可以使用container.remove(index)来实现。 请注意,删除容器的内容并不会自动刷新界面,需要调用容器的repaint()方法来刷新界面,以便更新显示。 参考资料: \[1\] swing比awt更加强调容器的概念,容器中可以再放置容器,也可以放组件,各容器使用时应设置布局。swing共有如下几个容器:JApplet,JDialog,JRootPane,JFrame,JWindow,JPanel,JScrollPane,JSplitPane,JTabbedPane,JToolBar,JLayerPane,JInternalFrame 。 \[2\] package com.jesse.kotlin.com.jesse.gui import java.awt.BorderLayout import java.awt.Dimension import javax.swing.* class WindowMain { private val rootContainer = JFrame("GUI Demo") fun buildGui(){ rootContainer.defaultCloseOperation = JFrame.EXIT_ON_CLOSE var label = JLabel("Hello world") rootContainer.contentPane.add(label, BorderLayout.CENTER) rootContainer.preferredSize = Dimension(400, 300) var menuPanel:JMenuBar = JMenuBar() menuPanel.add(JMenu("help")) rootContainer.jMenuBar = menuPanel rootContainer.pack() rootContainer.isVisible = true } } fun main(args: Array<String>) { SwingUtilities.invokeLater { WindowMain().buildGui() } } 。 \[3\] 容器java.awt.Container是Component的子类,一个容器可以容纳多个组件,并使它们成为一个整体。容器可以简化图形化界面的设计,以整体结构来布置界面。 Swing常用的顶层容器有JFrame、JApplet、JDialog、JWindow共4个。 JFrame框架 。 #### 引用[.reference_title] - *1* [5.JavaSwing知识点----(1)swing中的容器](https://blog.csdn.net/weixin_52484978/article/details/129827395)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Java Swing - 顶层容器类](https://blog.csdn.net/crxglh/article/details/120001020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Java语言-概念-Swing容器](https://blog.csdn.net/weixin_47423314/article/details/107593648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值