布局组件cardlayout

时间:2013-10-14 10:53:47

标签: java swing cardlayout

所以我只是创建一个简单的游戏画面,我想像这样布置我的两个按钮:

hello

我被建议使用CardLayout(之前我没有使用布局)所以我读了java文档并创建了这个:

canvas.setLayout(new CardLayout());
JPanel card1 = new JPanel();
JPanel card2 = new JPanel();

//buttons
final JButton btn1 = new JButton(play);
btn1.setBorder(BorderFactory.createEmptyBorder());
btn1.setContentAreaFilled(false);
final JButton btn2 = new JButton(instructions);
btn2.setBorder(BorderFactory.createEmptyBorder());
btn2.setContentAreaFilled(false);
card1.add(btn1);
card2.add(btn2);    

canvas.add(card1);
canvas.add(card2);          

然而,它产生了这个:

enter image description here

我似乎无法找到有关卡片布局定位的任何信息。我的猜测是我根本不应该使用这种布局,所以我应该使用什么布局?

1 个答案:

答案 0 :(得分:2)

卡片布局用于仅显示布局中的多个组件之一。您可以通过编程方式选择要显示的卡片,其余卡片将从视图中隐藏。

如果在卡片布局中添加两个按钮,则只能看到一个。您不应该根据具体情况使用它。您可以使用带X轴的Box布局

  

BoxLayout管理器使用轴参数构造   指定将要完成的布局类型。有四个   选择:

     

X_AXIS - 组件从左到右水平布局。

     

Y_AXIS - 组件从上到下垂直排列。

     

LINE_AXIS - 组件按照单词布局的方式布局   line,基于容器的ComponentOrientation属性。如果   容器的ComponentOrientation是水平的,然后是组件   水平布置,否则它们垂直布置。对于   水平方向,如果容器的ComponentOrientation是   从左到右,然后组件从左到右排列   它们从右到左排列。对于垂直方向组件   总是从上到下排列。

     

PAGE_AXIS - 组件是   基于文本行布置文本行的方式   容器的ComponentOrientation属性。如果容器的   ComponentOrientation是水平的,然后布局组件   垂直,否则它们是水平放置的。对于水平   方向,如果容器的ComponentOrientation是从左到右   然后组件从左到右布置,否则它们被铺设   从右到左。对于垂直方向,组件始终是   从上到下排列。