我想在JPanel
JTabbedPane
我有这个:
我想要这样的事情:
最重要的部分是JPanel
标签后的布局可能会有所不同,需要在调整主JFrame
时调整其大小。
我尝试使用OverlayLayout
,JLayeredPane
和Glass Panel,但没有运气。
答案 0 :(得分:3)
我尝试使用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();
}
});
}
}
当然只有空间可用才能显示组件。
唯一合适的解决方案是创建一个自定义选项卡式窗格UI,允许您向右添加组件。我不知道该怎么做。