Swing BorderLayout:按钮之间没有space,没有中心间隙
Swing BorderLayout: Make no space between buttons, no center gap
我有这个代码:
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();
}
}
当我运行它时,它显示:
然而,当我调整它的大小时 window:
如何让按钮占据 windows 的 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);
但它给出了原始结果。
此布局可以通过使用 GridLayout
(绿色)作为按钮,在 BorderLayout
(红色)作为主 GUI 的 CENTER
中轻松实现。
我有这个代码:
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();
}
}
当我运行它时,它显示:
然而,当我调整它的大小时 window:
如何让按钮占据 windows 的 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);
但它给出了原始结果。
此布局可以通过使用 GridLayout
(绿色)作为按钮,在 BorderLayout
(红色)作为主 GUI 的 CENTER
中轻松实现。