0

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

你好

我被建议使用 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);          

但是,它会产生:

在此处输入图像描述

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

4

1 回答 1

2

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

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

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

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

Y_AXIS - 组件从上到下垂直布局。

LINE_AXIS - 根据容器的 ComponentOrientation 属性,组件的布局方式与单词在一行中的布局方式相同。如果容器的 ComponentOrientation 是水平的,则组件水平布局,否则垂直布局。对于水平方向,如果容器的 ComponentOrientation 是从左到右,则组件从左到右布局,否则它们从右到左布局。对于垂直方向,组件总是从上到下布局。

PAGE_AXIS - 组件的布局方式与文本行在页面上的布局方式相同,基于容器的 ComponentOrientation 属性。如果容器的 ComponentOrientation 是水平的,则组件垂直布局,否则它们水平布局。对于水平方向,如果容器的 ComponentOrientation 是从左到右,则组件从左到右布局,否则它们从右到左布局。对于垂直方向,组件总是从上到下布局。

于 2013-10-14T10:57:13.743 回答