ted*_*ted 2 java swing jtabbedpane
我想知道是否有可能将Tabbed窗格放在右下方,我想要将容器放在彼此之上,从右上角到右边的tablabels(没有问题/默认),另一个用底部的标签(到目前为止一直很好)从右到左开始.我想象的设计是:
| tab display |
| tab display |
| tab display |
-----------------------------------------------
_________________________ | tab top | another|
| Bottom Tab| Second Tab|______________________
| |
Run Code Online (Sandbox Code Playgroud)
好吧,我的ascy绘图功能是有限的,但我希望你得到的图片.有什么办法,我可以在选项卡式窗格中添加布局管理器来布局标签吗?我在哪里可以找到这样的例子?Goodling建议将菜单栏与CardLayout结合使用,用于标签窗格.但是我不知道如何绘制菜单栏以使其看起来像标签.(我只是偷看了自定义绘图的swingtrail,但它只是关于一般的可能性,除此之外,如果我这样做,我放弃了样式功能.我现在唯一能想到的就是使用没有内容的标签窗格和通过eventlisteners使其控制另一个具有卡片布局的容器.
有什么建议?
PS:我必须用java 1.6实现解决方案
在这种情况下,您可以为JTabbedPane设置ComponentOrientation
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);
}
}
Run Code Online (Sandbox Code Playgroud)