java中的隐藏选项卡标题

java中的隐藏选项卡标题,java,swing,tabs,Java,Swing,Tabs,我有三个标签的标签窗格。 如何隐藏这些选项卡的标题以防止用户按下它们 我以前在c中创建一个继承自tab组件类的类,然后重写该方法来隐藏选项卡,但最近我切换到java,搜索了很多次,没有得到任何结果。试试这个 import javax.swing.*; import java.awt.*; import java.awt.event.*; class Testing { public void buildGUI() { JTabbedPane tp = new JTabbedPan

我有三个标签的标签窗格。 如何隐藏这些选项卡的标题以防止用户按下它们

我以前在c中创建一个继承自tab组件类的类,然后重写该方法来隐藏选项卡,但最近我切换到java,搜索了很多次,没有得到任何结果。

试试这个

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Testing
{
  public void buildGUI()
  {
    JTabbedPane tp = new JTabbedPane();
    tp.addTab("A",getPanel("A"));
    tp.addTab("B",getPanel("B"));
    tp.addTab("C",getPanel("C"));
    //Control Header space area..
    final boolean showTabsHeader = false;
    tp.setUI(new javax.swing.plaf.metal.MetalTabbedPaneUI(){
        @Override
        protected int calculateTabAreaHeight(int tabPlacement, int horizRunCount, int maxTabHeight) {
            if (showTabsHeader) {
                return super.calculateTabAreaHeight(tabPlacement, horizRunCount, maxTabHeight);
            } else {
                return 0;
            }
        }
      protected void paintTabArea(Graphics g,int tabPlacement,int selectedIndex){}
    });

    JFrame f = new JFrame();
    f.getContentPane().add(tp);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
  }
  public JPanel getPanel(String tabText)
  {
    JPanel p = new JPanel();
    p.add(new JLabel(tabText));
    return p;
  }
  public static void main(String[] args)
  {
    SwingUtilities.invokeLater(new Runnable(){
      public void run(){
        new Testing().buildGUI();
      }
    });
  }
}
试试这个

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Testing
{
  public void buildGUI()
  {
    JTabbedPane tp = new JTabbedPane();
    tp.addTab("A",getPanel("A"));
    tp.addTab("B",getPanel("B"));
    tp.addTab("C",getPanel("C"));
    //Control Header space area..
    final boolean showTabsHeader = false;
    tp.setUI(new javax.swing.plaf.metal.MetalTabbedPaneUI(){
        @Override
        protected int calculateTabAreaHeight(int tabPlacement, int horizRunCount, int maxTabHeight) {
            if (showTabsHeader) {
                return super.calculateTabAreaHeight(tabPlacement, horizRunCount, maxTabHeight);
            } else {
                return 0;
            }
        }
      protected void paintTabArea(Graphics g,int tabPlacement,int selectedIndex){}
    });

    JFrame f = new JFrame();
    f.getContentPane().add(tp);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
  }
  public JPanel getPanel(String tabText)
  {
    JPanel p = new JPanel();
    p.add(new JLabel(tabText));
    return p;
  }
  public static void main(String[] args)
  {
    SwingUtilities.invokeLater(new Runnable(){
      public void run(){
        new Testing().buildGUI();
      }
    });
  }
}

如果不需要选项卡功能,为什么要使用JTabbedPane?为什么不使用卡片布局呢?@HovercraftFullOfEels我现在正在做一个项目,并试图在策略设计模式中实现它,所以我想要一个包含所有按钮的主窗体,以及包含功能的选项卡。您认为包含功能的选项卡是什么意思?是否会显示每个选项卡?请详细说明您的实际问题。@HovercraftFullOfEels问题是我想隐藏选项卡的标题。选项卡包含用户的表格和一些输入字段。一些按钮,如“后退”和“取消”将不在面板中,因此即使用户从一个选项卡移动到另一个选项卡,后退按钮也将包含相同的逻辑。这是所有项目的一个后退按钮。希望现在一切都清楚了。感谢您的回复如果您不需要选项卡功能,为什么要使用JTabbedPane?为什么不使用卡片布局呢?@HovercraftFullOfEels我现在正在做一个项目,并试图在策略设计模式中实现它,所以我想要一个包含所有按钮的主窗体,以及包含功能的选项卡。您认为包含功能的选项卡是什么意思?是否会显示每个选项卡?请详细说明您的实际问题。@HovercraftFullOfEels问题是我想隐藏选项卡的标题。选项卡包含用户的表格和一些输入字段。一些按钮,如“后退”和“取消”将不在面板中,因此即使用户从一个选项卡移动到另一个选项卡,后退按钮也将包含相同的逻辑。这是所有项目的一个后退按钮。希望现在一切都清楚了。感谢您亲自回复,我不喜欢任何影响已建立的UI的解决方案,因为它使UI看起来很奇怪—一组标签使用金属,所有其他标签使用已安装的UI-IMHO@MadProgrammer我想你是对的,但是因为这个项目是为我准备的,我只是在练习,所以我不太在乎:谢谢你,我不喜欢任何影响已建立的UI的解决方案,因为它使UI看起来很奇怪—一组标签使用金属,所有其他标签使用已安装的UI-IMHO@MadProgrammer我想你是对的,但是因为这个项目是为我准备的,我只是在练习,所以我不太在乎:谢谢