Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 布局部件和布局_Java_Swing_Cardlayout - Fatal编程技术网

Java 布局部件和布局

Java 布局部件和布局,java,swing,cardlayout,Java,Swing,Cardlayout,所以我只是创建了一个简单的游戏屏幕,我想像这样布置我的两个按钮: 我被建议使用CardLayout(我以前没有使用过布局),因此我阅读了java文档并创建了以下内容: canvas.setLayout(new CardLayout()); JPanel card1 = new JPanel(); JPanel card2 = new JPanel(); //buttons final JButton btn1 = new JButton(play); btn1.setBorder(Borde

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

我被建议使用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);          
然而,它产生了以下结果:


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

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

如果在卡片布局中添加两个按钮,则只能看到一个。你不应该把它用于你的特殊情况。可以将长方体布局与X轴一起使用

BoxLayout管理器由一个轴参数构成,该参数 指定要完成的布局类型。有四个 选择:

X_轴-组件从左到右水平布置

Y_轴-组件从上到下垂直布置

行轴-组件的布局方式与单词在 行,基于容器的ComponentOrientation属性。如果 容器的组件方向是水平的,然后组件是水平的 水平布置,否则垂直布置。对于 水平方向,如果容器的组件方向为 从左到右,然后从左到右布置构件,否则 它们从右到左排列。用于垂直方向组件 都是从上到下排列的

页面\u轴-组件 布局基于 容器的ComponentOrientation属性。如果容器 组件方向为水平,然后布局组件 垂直放置,否则将水平放置。水平的 方向,如果容器的组件方向为从左到右 然后从左到右布置构件,否则将布置构件 从右到左。对于垂直方向,组件始终为 从上到下排列