0

我有一个卡片布局,可以在带有 JComboBox 的面板之间切换。问题是当我重新调整窗口大小时,我的面板内部永远不会改变大小。每当我使用 SpringLayout 时,我都可以告诉一些东西让 x 像素远离边框,它会重新调整自己的大小。我怎么能在 CardLayout 中模仿呢?

4

1 回答 1

3

每当我使用 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 像素的边框。您还可以将边框添加到各个卡片面板。阅读 Swing 教程中有关如何使用边框的部分以获取更多信息和工作示例。

...它会重新调整自己的大小。我如何在 CardLayout 中模仿它?我如何在 CardLayout 中模仿它?

CardLayout 仅包含其他面板。您仍然需要设置添加到卡片面板的每个面板的布局,以便调整组件的大小。

Swing 教程也有一个关于How to Use CardLayout工作演示的部分,该演示显示组件位置随着框架大小的变化而变化。如果要调整组件大小,则需要为添加到 CardLayout 的每个面板使用不同的布局管理器。

于 2016-01-19T06:38:09.457 回答