gpt4 book ai didi

java - 减少 JFrame 中的空白空间

转载 作者:行者123 更新时间:2023-11-30 08:21:33 25 4
gpt4 key购买 nike

我这里有一个完成的应用程序,但是屏幕上有很多空白区域,我已经摆弄了一段时间,但下面的图片是我剪得最多的。

enter image description here

我假设我没有使用某种我可能已经或可能根本没有使用过的方法或实用程序。

代码如下:

public ListWindow() {

chooser = new JFileChooser();

this.setLayout(new GridLayout(3,1,1,1));
JPanel sortPanel = new JPanel();
JPanel displayPanel = new JPanel();
JPanel btns = new JPanel();

JLabel sortLabel = new JLabel("Sort by:");
sortGame = new JRadioButton("Game");
sortScore = new JRadioButton("Score");
sortBtn = new JButton("Sort");

ButtonGroup group = new ButtonGroup();
group.add(sortGame);
group.add(sortScore);

list = new JList(reviewList.toArray());

JScrollPane reviewPane = new JScrollPane(list);
reviewPane.setPreferredSize(new Dimension(400, 150));

windowBtn = new JButton("To Review Entry");

buttonActions();

sortPanel.add(sortLabel);
sortPanel.add(sortGame);
sortPanel.add(sortScore);
sortPanel.add(sortBtn);
displayPanel.add(reviewPane);
btns.add(windowBtn);

this.add(sortPanel);
this.add(displayPanel);
this.add(btns);
}
public static void main(String[] args) {

ListWindow window = new ListWindow();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setTitle("CriticalStrike.com - Review Database");
window.pack();
window.setVisible(true);
}
}

谢谢大家的帮助!

最佳答案

这是由使用 GridLayout 引起的,它会导致您添加到其中的组件使用相同大小的空间。对于一列三行的情况,如果三个组件从一个组件到下一个组件不占用相同数量的空间,那么一些 GridLayout 区域将有未使用的额外空间。

我建议在这里使用 BorderLayout。您可以将第一个和第三个组件添加到南北位置,这将尝试使用最少的房间高度和最多的房间宽度,您可以将大文本区域添加到中心位置,这将尽量使用最多的房间高度和宽度。

所以有些事情……

this.setLayout(new BorderLayout());
...
this.add(sortPanel, BorderLayout.NORTH);
this.add(displayPanel, BorderLayout.CENTER);
this.add(btns, BorderLayout.SOUTH);

关于java - 减少 JFrame 中的空白空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25148287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com