java swing选项卡窗格位置选项卡标题从右下到左
我想知道是否有可能在右下角放置一个选项卡式窗格, 我想让容器彼此重叠,一个是从右上到左(没有问题/默认),另一个是从右到左(到目前为止还不错)从底部。 我想象的设计是:java swing选项卡窗格位置选项卡标题从右下到左,java,swing,jtabbedpane,Java,Swing,Jtabbedpane,我想知道是否有可能在右下角放置一个选项卡式窗格, 我想让容器彼此重叠,一个是从右上到左(没有问题/默认),另一个是从右到左(到目前为止还不错)从底部。 我想象的设计是: | tab display | | tab display | | tab display | ---------------------
| tab display |
| tab display |
| tab display |
-----------------------------------------------
_________________________ | tab top | another|
| Bottom Tab| Second Tab|______________________
| |
嗯,我的ascy绘图能力有限,但我希望你了解情况。
有没有办法,我可以在一个选项卡式窗格中添加一个布局管理器来布局tablabel?我在哪里可以找到这样的例子?古德林建议在选项卡式窗格中使用菜单栏和卡片布局。但是,我不知道如何绘制菜单栏,使其看起来像制表符。(我刚刚查看了swingtrail的自定义绘图,但它只是继续讨论一般的可能性,此外,如果我这样做,我会失去样式功能。我现在唯一能想到的是使用一个没有内容的选项卡式窗格,并通过eventlisteners使其控制另一个具有卡片布局的容器
有什么建议吗
注意:我必须用Java1.6实现这个解决方案,并使用setTabPlacement(JTabbedPane.TOP)方法进行检查
可用的有顶部、左侧、底部和右侧
在这种情况下,您可以为JTabbedPane设置组件方向
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
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, "<html> T<br>i<br>t<br>t<br>l<br>e <br> 1 </html>");
tabbedPane.add(two, "<html> Tittle 1 </html>");
tabbedPane.setEnabledAt(2, false);
tabbedPane.setTitleAt(2, "<html><font color="
+ (tabbedPane.isEnabledAt(2) ? "black" : "red") + ">"
+ tabbedPane.getTitleAt(2) + "</font></html>");
tabbedPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
tabbedPane.setTabPlacement(JTabbedPane.BOTTOM);
}
public static void main(String args[]) {
TestTabbedPane frame = new TestTabbedPane();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
导入java.awt.ComponentOrientation;
导入java.awt.Dimension;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
导入javax.swing.JTabbedPane;
导入javax.swing.JTextField;
公共类TestTabbedPane扩展了JFrame{
私有静态最终长serialVersionUID=1L;
私有JTabbedPane选项卡窗格;
公共测试选项卡窗格(){
tabbedPane=新的JTabbedPane();
tabbedPane.setPreferredSize(新维度(300200));
getContentPane().add(选项卡窗格);
JPanel面板=新的JPanel();
tabbedPane.add(面板,“null”);
JTextField one=新的JTextField(“one”);
选项卡窗格。添加(一,“一”);
JTextField two=新的JTextField(“two”);
//选项卡窗格。添加(两个,“T
i
T
T
l
e
1”);
选项卡窗格。添加(两个,“标题1”);
tabbedPane.setEnabledAt(2,false);
选项卡窗格。设置标题栏(2“
+tabbedPane.getTitleAt(2)+“”;
tabbedPane.setComponentOrientation(ComponentOrientation.RIGHT\u TO\u LEFT);
tabbedPane.setTabPlacement(JTabbedPane.BOTTOM);
}
公共静态void main(字符串参数[]){
TestTabbedPane frame=newtesttabbedpane();
frame.setDefaultCloseOperation(关闭时退出);
frame.pack();
frame.setVisible(true);
}
}
正如我写的“…底部的表格标签(目前为止还不错)…”没有问题,问题是在我将它们放置在集装箱下方后,使它们从右向左或左对齐。我认为这是布局的问题,尝试使用方框或网格对问题进行排序似乎可以解决问题,但为什么垂直标题1
(或者更确切地说,title 1
-我更喜欢哪个)?请psssttt,我从另一个线程中回收了示例(如何更改禁用标签标题的颜色)回收?很高兴看到您帮助地球。;)我想称您为java神,但这可能会引起对垃圾神的对立情绪;)。感谢您的回答和示例,为我省去了很多麻烦(想象一下我的解决方案(一个带有cardboxlayout的额外容器,以及其他一些东西…)。还有一个“附加问题”:我可以使右tablabel(null)右边缘与容器的右边缘完全对齐吗?还有一个“附加问题”:我可以使右tablabel(null)对齐吗右边缘与容器的右边缘完全对齐?
不知道如何正确地解决这个问题,并且在屏幕上有很好的输出,这不是一件容易的工作,因为大多数方法都是私有的,然后无法从API中为JTabbedPane插入的Swing方法访问