要解决边界面板的中心(子场景)不会自动调整大小的问题,可以使用以下方法:
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainFrame extends JFrame {
public MainFrame() {
// 创建边界面板
JPanel panel = new JPanel(new BorderLayout());
// 创建中心组件
JButton centerButton = new JButton("Center");
// 将中心组件添加到边界面板的中心位置
panel.add(centerButton, BorderLayout.CENTER);
// 将边界面板添加到主窗口
add(panel);
// 设置窗口大小和关闭操作
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MainFrame();
}
}
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainFrame extends JFrame {
public MainFrame() {
// 创建边界面板
JPanel panel = new JPanel(null); // 使用 null 布局管理器
// 创建中心组件
JButton centerButton = new JButton("Center");
// 设置中心组件的位置和大小
int centerX = (panel.getWidth() - centerButton.getWidth()) / 2;
int centerY = (panel.getHeight() - centerButton.getHeight()) / 2;
centerButton.setBounds(centerX, centerY, 100, 50); // 设置中心组件的大小为 100x50
// 将中心组件添加到边界面板
panel.add(centerButton);
// 将边界面板添加到主窗口
add(panel);
// 设置窗口大小和关闭操作
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MainFrame();
}
}
以上两种方法都可以解决边界面板中心(子场景)不会自动调整大小的问题。使用布局管理器可以更方便地自动调整大小,而手动调整大小可以更精确地控制中心组件的位置和大小。