作为参考,这里有一个没有问题的示例。它使用GridLayout(0, 1)具有一致的间隙和边框。调整封闭框架的大小以查看效果。尝试Box(BoxLayout.Y_AXIS)作为替代方案。
我怀疑原始代码(错误)使用了setXxxSize()或的某种组合setBounds(),如果所选的外观和感觉具有由按钮的 UI 委托指定的不同几何形状,它将显示所显示的效果。

import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/** @see /sf/answers/2175503781/ */
public class Buttons {
private void display() {
JFrame f = new JFrame("Buttons");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel(new GridLayout(0, 1, 10, 10));
p.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
for (int i = 0; i < 3; i++) {
p.add(new JButton("Button " + (i + 1)));
}
f.add(p);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Buttons()::display);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
269 次 |
| 最近记录: |