当制表符放置设置为LEFT时,JTabbedPane标题的垂直方向

从下图中可以看出,Java文本是水平的。 我想做的是获得JTabbedPane标题的垂直方向。

谷歌搜索时,我发现唯一的方法是添加额外的库。 但我想知道这是否可以在没有任何额外库的情况下完成?

我想Title1Title2是垂直方向而不是水平方向

在此处输入图像描述

您必须使用Html语法,对禁用的Tab也进行任何更改

tabbedPane.addTab("T
i
t
t
l
e
1", panel1);

编辑

关于Html文本格式和对齐的问题的SSCCE

 import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.JTextField; /** * * @author korbel */ public class TestTabbedPane extends JFrame { private static final long serialVersionUID = 1L; private JTabbedPane tabbedPane; public TestTabbedPane() { tabbedPane = new JTabbedPane(); tabbedPane.setPreferredSize(new Dimension(300, 200)); getContentPane().add(tabbedPane); JPanel panel = new JPanel(); tabbedPane.add(panel, "null"); JTextField one = new JTextField("one"); tabbedPane.add(one, "one"); JTextField two = new JTextField("two"); tabbedPane.add(two, " T
i
t
t
l
e
1 "); tabbedPane.setEnabledAt(2, false); /*int comp = tabbedPane.getComponentCount(); for (Component sc : tabbedPane.getComponents()) { if (sc instanceof javax.swing.JLabel) { JLabel lbl = (JLabel) sc; lbl.setForeground(Color.red); } if (sc instanceof javax.swing.JPanel) { JPanel pnl = (JPanel) sc; pnl.setName(pnl.getName()); } if (sc instanceof javax.swing.JTextField) { JTextField txt = (JTextField) sc; txt.setForeground(Color.blue); txt.setDisabledTextColor(Color.red); } } UIManager.put("TabbedPane.contentBorderInsets", new Insets(0, 0, 0, 0)); UIManager.put("TabbedPane.highlight", new Color(255, 0, 0)); UIManager.put("TabbedPane.lightHighlight", new Color(0, 255, 0)); UIManager.put("TabbedPane.darkShadow", new Color(0, 255, 0)); UIManager.put("TabbedPane.shadow",new Color(0, 0, 255)); UIManager.put("TabbedPane.light" , new Color(0, 255, 0)); UIManager.put("TabbedPane.foreground", new Color(0, 0, 0)); UIManager.put("JTabbedPane.font", new Font("Dialog", Font.ITALIC, 12)); UIManager.put("TabbedPane.selected", new Color(255, 0, 0)); UIManager.put("disable", new Color(255, 0, 0)); UIManager.put("TabbedPane.selectHighlight" , new Color(0, 0, 0)); UIManager.put("TabbedPane.background", new Color(0, 0, 0)); SwingUtilities.updateComponentTreeUI(tabbedPane);*/ tabbedPane.setTitleAt(2, "" + tabbedPane.getTitleAt(2) + ""); tabbedPane.setTabPlacement(JTabbedPane.LEFT); } public static void main(String args[]) { TestTabbedPane frame = new TestTabbedPane(); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } }

如果您使用WebLaf LoolAndFeel库有一个名为WebVerticalLabel的组件可以具有垂直文本。

 JTabbedPane .setTabComponentAt(1, new WebVerticalLabel("Title1"));