我有一个卡片布局,可以使用JComboBox在面板之间切换。问题是,当我重新调整窗口大小时,我的面板内部永远不会改变大小。什么时候我会使用SpringLayout我可以告诉一些东西保持x像素远离边界,它会重新调整自己的大小。我怎么能在CardLayout中模仿它?
答案 0 :(得分: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像素的边框。您还可以将边框添加到各个卡面板。阅读How to Use Borders上Swing教程中的部分,了解更多信息和工作示例。
......它会重新调整自身的大小。我怎么能在CardLayout中模仿它?我怎么能在CardLayout中模仿它?
CardLayout只持有其他面板。您仍然需要设置添加到卡面板的每个面板的布局,以便调整组件大小。
Swing教程还有一个关于How to Use CardLayout
的部分,其中有一个工作演示,显示了在调整帧大小时组件位置的变化。如果您希望组件调整大小,则需要为添加到CardLayout的每个面板使用不同的布局管理器。