【发布时间】:2021-05-23 01:34:37
【问题描述】:
我有这个代码:
import javax.swing.*;
import java.awt.*;
public class Test extends JFrame {
public Test() {
JPanel panel = new JPanel();
JButton leftButton = new JButton("Left");
JButton rightButton = new JButton("Right");
JButton bottomButton = new JButton("Bottom");
Container container = getContentPane();
container.add(leftButton, BorderLayout.LINE_START);
container.add(rightButton, BorderLayout.LINE_END);
container.add(bottomButton, BorderLayout.PAGE_END);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
Test test = new Test();
}
}
当我运行它时,它显示:
但是,当我调整此窗口的大小时:
如何让按钮占据 100% 的窗口,如下所示:
我尝试过这样做:
import javax.swing.*;
import java.awt.*;
public class Test extends JFrame {
public Test() {
JPanel panel = new JPanel();
JButton leftButton = new JButton("Left");
JButton rightButton = new JButton("Right");
JButton bottomButton = new JButton("Bottom");
panel.add(leftButton);
panel.add(rightButton);
Container container = getContentPane();
// container.add(leftButton, BorderLayout.LINE_START);
//container.add(rightButton, BorderLayout.LINE_END);
container.add(panel, BorderLayout.CENTER);
container.add(bottomButton, BorderLayout.PAGE_END);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
Test test = new Test();
}
}
但效果更差:
我也试过了:
container.add(new JLabel(""), BorderLayout.CENTER);
但它给出了原始结果。
【问题讨论】:
-
你可以试试盒子布局。此处至少有一个示例显示了完全填满空间的按钮列表。 Box 处理起来可能会很暴躁,因此您可能需要进行试验。 docs.oracle.com/javase/tutorial/uiswing/layout/box.html
标签: java swing layout-manager border-layout