我想在JTabbedPane
的JPanel
我这最后一个标签后添加JPanel
:
我想是这样的:
的最重要的部分是选项卡后JPanel
的布局可能会有所不同,并且在调整主JFrame
的大小时需要调整其大小。
我试过OverlayLayout
,JLayeredPane
和玻璃面板,但没有运气。
我想在JTabbedPane
的JPanel
我这最后一个标签后添加JPanel
:
我想是这样的:
的最重要的部分是选项卡后JPanel
的布局可能会有所不同,并且在调整主JFrame
的大小时需要调整其大小。
我试过OverlayLayout
,JLayeredPane
和玻璃面板,但没有运气。
我OverlayLayout试过,
这里是与OverlayLayout工作的例子,工程:
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.*;
public class TabbedPaneWithComponent
{
private static void createAndShowUI()
{
JPanel panel = new JPanel();
panel.setLayout(new OverlayLayout(panel));
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.add("1", new JTextField("one"));
tabbedPane.add("2", new JTextField("two"));
tabbedPane.setAlignmentX(1.0f);
tabbedPane.setAlignmentY(0.0f);
JCheckBox checkBox = new JCheckBox("Check Me");
checkBox.setOpaque(false);
checkBox.setAlignmentX(1.0f);
checkBox.setAlignmentY(0.0f);
panel.add(checkBox);
panel.add(tabbedPane);
JFrame frame = new JFrame("TabbedPane With Component");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
frame.setLocationByPlatform(true);
frame.setSize(400, 100);
frame.setVisible(true);
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowUI();
}
});
}
}
当然,这仅适用它有可用来显示组件的空间。
唯一正确的解决方案是创建一个自定义选项卡窗格用户界面,允许您向右侧添加组件。我不知道该怎么做。
加上一个,用GBC也是可能的,创建一个浮动的又名工具栏(更好使用JMenu而不是JPanel) – mKorbel
我以前试过,但用'JPanel'而不是'JCheckBox'不起作用,至少我。我使用带标题上的自定义组件的新选项卡和CustomTabbedPaneUI上的一些更改。现在它看起来像[this](https://drive.google.com/file/d/0Bz8VTzJV6y1FY0otMGZXZzR0QUU/view?usp=sharing) – jotapdiez
@jotapdiez,'用JPanel而不是JCheckBox不起作用' - 它的工作原理,但您需要将面板的最大尺寸设置为首选尺寸,否则面板将在选项卡窗格上绘制。 '我用标题上的自定义组件创建了新选项卡,并在CustomTabbedPaneUI上进行了一些更改.'因为我认为这是一个更好的方法。您应该将解决方案作为答案发布。这可能会使论坛的其他用户受益。 – camickr
你必须进入JTabbedPane的外观和感觉代表我想确定它是如何绘制标签的...... – MadProgrammer
现在,我正在制作一个新的Tab,Tab标题的组件是一个带有我需要的所有东西(按钮,文本框,标签等)的'JPanel',但我需要使最后一个标题标题完整宽度。 – jotapdiez