Java中CardLayout与GridLayout的结合
我有一种情况,我在几个JPanel上使用CardLayout,因为我现在只想看到on。但是,我需要使JPanel的(每个)组件自动调整大小。我在谷歌上搜索,发现GridLayout或GridBagLayout(我发现)可以在调整JFrame大小时改变组件的形状 有谁能帮我把这两种布局结合起来,让它们一起工作 另外,所有JPanel都在单独的类中,主类是包含JFrame和CardLayout的类。还包含菜单栏。所有JPanel都有绝对布局(我想这也是一个问题),但我对布局不是很友好。在这种情况下,名为Java中CardLayout与GridLayout的结合,java,swing,layout,layout-manager,autoresize,Java,Swing,Layout,Layout Manager,Autoresize,我有一种情况,我在几个JPanel上使用CardLayout,因为我现在只想看到on。但是,我需要使JPanel的(每个)组件自动调整大小。我在谷歌上搜索,发现GridLayout或GridBagLayout(我发现)可以在调整JFrame大小时改变组件的形状 有谁能帮我把这两种布局结合起来,让它们一起工作 另外,所有JPanel都在单独的类中,主类是包含JFrame和CardLayout的类。还包含菜单栏。所有JPanel都有绝对布局(我想这也是一个问题),但我对布局不是很友好。在这种情况下,
cards
的JPanel
有CardLayout
,但添加到cards
的CardPanel的每个实例都有默认JPanel
布局,流程布局
。您可以在CardPanel
构造函数中更改布局并添加其他组件以查看效果
public CardPanel(String name) {
this.name = name;
this.setLayout(new GridLayout(0, 1); // a one column grid
this.setBackground(new Color(random.nextInt()));
this.add(new JLabel(name));
this.add(new …);
…
}
所有JPanel都有绝对布局(我想这也是一个问题)
-是的,这就是问题所在。使用绝对布局时,组件不会调整大小但我对布局不太友好。
-这是您需要使用的解决方案,因此您需要花一些时间学习如何使用每个不同的布局来获得所需的外观。首先阅读上Swing教程中的部分,了解更多信息和工作示例。