所以我希望三个JButtons
全部相互叠加,但宽度或高度也不大。我对Java的布局并不太熟悉,说实话,我对它们并不太热衷。请查看下面的代码图片,向我解释如何,谢谢。
package com.aqagame.harrykitchener;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Main
{
private JButton playGame, playerNames, exitGame;
public Main()
{
JPanel mainCard = new JPanel(new BorderLayout(8, 8));
playGame = new JButton("Play Game");
playerNames = new JButton("Player Names");
exitGame = new JButton("Exit Game");
mainCard.add(playGame, BorderLayout.NORTH);
mainCard.add(playerNames, BorderLayout.CENTER);
mainCard.add(exitGame, BorderLayout.SOUTH);
JFrame window = new JFrame("Harry's AQA game");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().add(mainCard);
window.setSize(900, 800);
window.setLocationRelativeTo(null);
window.setVisible(true);
}
public static void main(String args[])
{
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Main();
}
});
}
}
答案 0 :(得分:4)
查看不同布局管理器的Java Documentation。我知道你不熟悉它们,这就是你应该开始的原因。一旦你习惯了他们,他们的好处是无止境的。文档中有很多优秀的信息,我相信你会学到很多东西。就个人而言,我建议查看Box Layout:
答案 1 :(得分:4)
创建使用GridLayout
的JPanel并将所有按钮添加到面板。 GridLayout会自动调整按钮的大小。
将主窗口的layout manager
设置为使用GridBagLayout
。
使用默认的GridBagConststraints将面板添加到主窗口。然后面板将自动水平和垂直居中。
答案 2 :(得分:1)
为了不使用Box或GridBag,我认为这样的组合可能有用:
我认为这应该会导致按钮在少量填充的情况下彼此叠加,而不会在横向拉伸并且出现在屏幕中央时。