我正在使用 eclipse 和 windowsbuilder 来制作 java gui 应用程序。我在维护 Swing 面板中组件的填充时遇到了麻烦。我正在使用窗口构建器设计器中的组布局来定位组件。但遗憾的是,当窗口大小调整时,我无法保持填充。
普通窗口
调整大小或最大化时的窗口
当调整窗口大小时,我希望让我的应用程序自动调整水平和垂直间隙的大小,如第三张图片所示,以便正确维护组件填充。
代码:
public myframe() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.CENTER);
JButton btnNewButton = new JButton("New button");
GroupLayout gl_panel = new GroupLayout(panel);
gl_panel.setHorizontalGroup(
gl_panel.createParallelGroup(Alignment.TRAILING)
.addGroup(Alignment.LEADING, gl_panel.createSequentialGroup()
.addGap(166)
.addComponent(btnNewButton)
.addContainerGap(169, Short.MAX_VALUE))
);
gl_panel.setVerticalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addGap(37)
.addComponent(btnNewButton)
.addContainerGap(192, Short.MAX_VALUE))
);
panel.setLayout(gl_panel);
}
最佳答案
我已经找到了这个问题的解决方案::) 只需将 .addGap() 替换为 .addContainerGap() 即可,这样做后效果很好。
关于java - Swing 面板可调整间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13789211/