我正在尝试在OSX上的Java 7中创建一个JTabbedPane,其标签位于左侧,文本水平(而不是垂直)。但是,使用代码:
import javax.swing.*;
import java.awt.Dimension;
class Probs extends JDialog {
JTabbedPane options = new JTabbedPane();
Probs(JFrame owner) {
//main constructor
super(owner, "User Preferences", true);
//set the tabs to be left aligned
options.setTabPlacement(JTabbedPane.LEFT);
//construct the authorization panel
JPanel authorization = new JPanel();
authorization.add(new JLabel("test"));
options.addTab("test", authorization);
add(options);
setSize(new Dimension(300,300)); //should use pack here
setResizable(false);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
JFrame test = new JFrame();
new Probs(test);
test.dispose();
}
}
我看到一个类似于:this image
的对话框
我希望标签文本是水平的(标签上的'test'标题是水平定向而不是垂直定向)。
我在Google上搜索了一段时间,并且只遇到人们希望在他们的标签上获得垂直文字的事件,我无法找到任何人想要水平文本(我想要实现的目标) )。
特别是,我正在尝试实现与this问题的第一篇文章中提到的图像完全相同的内容。它基本上与那个问题完全相反,因为该标签中的人开始于我想要实现的目标(我相信)。基本上,我正在尝试确定如何创建在该问题的第一篇文章中显示的图像。
有人可以告诉我如何在保留水平标签标题(而不是垂直标签)的同时使用面向左侧的标签吗?
感谢您的时间和帮助。
答案 0 :(得分:2)
同样,由于我无法复制问题,请尝试建议:
JPanel authorization = new JPanel();
authorization.add(new JLabel("test"));
options.addTab("", authorization);
JLabel labTab2 = new JLabel("test"); // create a label
options.setTabComponentAt(0, labTab2); // set it to the component
答案 1 :(得分:1)
对齐方式由您的操作系统决定。如果要更改选项卡文本的对齐方式,则必须更改swing应用程序的外观。这对我有用。请参阅here。
答案 2 :(得分:0)
MacOSX的系统外观并不支持您在JTabbedPane中所需的功能。您必须创建一个自定义的JComponent来执行此操作,或者将应用程序的外观设置为跨平台(java metal),如@MonkeySupersonic所述。
我建议阅读: