【发布时间】:2016-01-19 06:13:27
【问题描述】:
我有一个卡片布局,可以在带有 JComboBox 的面板之间切换。问题是当我重新调整窗口大小时,我的面板内部永远不会改变大小。每当我使用 SpringLayout 时,我都可以告诉一些东西让 x 像素远离边界,它会重新调整自身的大小。我怎么能在 CardLayout 中模仿呢?
【问题讨论】:
标签: java swing layout-manager cardlayout springlayout
我有一个卡片布局,可以在带有 JComboBox 的面板之间切换。问题是当我重新调整窗口大小时,我的面板内部永远不会改变大小。每当我使用 SpringLayout 时,我都可以告诉一些东西让 x 像素远离边界,它会重新调整自身的大小。我怎么能在 CardLayout 中模仿呢?
【问题讨论】:
标签: java swing layout-manager cardlayout springlayout
当我使用 SpringLayout 时,我可以告诉一些东西让 x 像素远离边框
您可以将Border 添加到用于CardLayout 的面板中。
JPanel cards = new JPanel(new CardLayout());
cards.setBorder( new EmptyBorder(10, 10, 10, 10) );
cards.add(card1, "card1");
cards.add(card2, "card2");
现在每个子面板将在面板周围有一个 10 像素的边框。您还可以将边框添加到各个卡片面板。阅读 How to Use Borders 上的 Swing 教程部分,了解更多信息和工作示例。
... 它会重新调整自己的大小。如何在 CardLayout 中模仿?如何在 CardLayout 中模仿?
CardLayout 仅包含其他面板。您仍然需要设置添加到卡片面板的每个面板的布局,以便调整组件的大小。
Swing 教程还有一个关于 How to Use CardLayout 的部分,其中包含一个工作演示,显示组件位置随着框架大小的调整而变化。如果您希望组件调整大小,则需要为添加到 CardLayout 的每个面板使用不同的布局管理器。
【讨论】: