Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何移动选项卡式窗格的位置_Java_Jtabbedpane - Fatal编程技术网

Java 如何移动选项卡式窗格的位置

Java 如何移动选项卡式窗格的位置,java,jtabbedpane,Java,Jtabbedpane,我知道,当我创建选项卡式窗格的实例时,我设置了如下位置: jtp = new JTabbedPane(SwingConstants.LEFT) 我的问题是,是否可以将位置设置为如上所述的左侧,但将起始位置向下移动一点?我不希望第一个标签出现在左手边的最上面。我想留下一些空位。可能吗?谢谢。您可以将组件打包到javax.swing.Box添加它: jtp.add("Component shifted vertically", shiftVertical(your_component, 5));

我知道,当我创建选项卡式窗格的实例时,我设置了如下位置:

 jtp = new JTabbedPane(SwingConstants.LEFT)

我的问题是,是否可以将位置设置为如上所述的左侧,但将起始位置向下移动一点?我不希望第一个标签出现在左手边的最上面。我想留下一些空位。可能吗?谢谢。

您可以将组件打包到javax.swing.Box添加它:

jtp.add("Component shifted vertically", shiftVertical(your_component, 5)); // 5 px or more

public static Box shiftVertical(JComponent component, int size){
    Box vBox = Box.createVerticalBox();
    vBox.add(Box.createVerticalStrut(size)); 
    vBox.add(component);

    return vBox;
}

我设法找到了解决这个问题的办法。为此,我创建了一个“虚拟”图标,它基本上是一个正方形,颜色与选项卡式窗格的背景颜色相同。然后,我将此图标设置为“虚拟”选项卡窗格的图标,并禁用该选项卡:

jtp.addTab("", dummyIcon, null);
jtp.setEnabledAt(0, false);

通过调整图标的大小,我可以使第一个选项卡式窗格占据我想要的空间,因为窗格的大小不必相同。这样,第一个选项卡不可单击,并且颜色与面板的背景颜色相似,因此它看起来好像空间是空的。

这是可行的,但也会移动添加到选项卡窗格中的整个窗格,因此效果仍然是窗格顶部和第一个标签对齐。我只想移动选项卡式窗格(标签)。有办法吗?我确定了答案。试试新的。这和我想要的正好相反。它不会移动选项卡标签,而是移动面板本身,因此标签最终会高于面板。我需要另一种方式。对你们两个都很抱歉!