【发布时间】:2019-02-13 11:46:24
【问题描述】:
我正在尝试设计类似于浏览器标题栏(浏览器顶部)。左侧有选项卡,右侧有最小化、调整大小(最小化/最大化)、退出按钮。
为此,我尝试过。
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.RIGHT));
JPanel tabpanel= new JPanel();
tabpanel.setLayout(new FlowLayout(FlowLayout.LEFT));
tabpanel.add(new JButton("Tab 1"));
tabpanel.add(new JButton("Tab 2"));
panel.add(tabpanel);
panel.add(new JButton("Minimize"));
panel.add(new JButton("Resize"));
panel.add(new JButton("Quit"));
根据我的需要在右侧创建了退出、调整大小、最小化按钮,但在最小化按钮附近创建的选项卡而不是框架的左侧。我认为应该有方法或任何东西来填充剩余的内容,还是应该使用其他布局?任何帮助表示赞赏
【问题讨论】:
-
我只是想说-
GridBagLayout -
@MadProgrammer 异端!!!! ;-)(说真的,
GridBagLayout以somewhat awkward to use 闻名)。根据描述,听起来可以通过将BorderLayout放入标题栏中并将两个带有按钮的面板放入EAST和WEST来解决。 @Tekin 如果您认为这可以解决问题,我会写这个作为答案,包括minimal reproducible example) -
在发布@Marco13 建议的 MCVE 时:提供 ASCII 艺术或 GUI 的 预期 布局的简单绘图,最小尺寸,如果可调整大小,则具有更大的宽度和高度 - 显示应该如何使用额外的空间。
-
@Marco13
GridBagLayout是可用的最灵活的布局管理器,但也带来了复杂性。它将解决 OP 在单个容器中非常简单地描述的问题 -
@Marco13 好了,用 9 行代码解决了????????
标签: java swing user-interface layout-manager