【发布时间】:2013-06-21 14:44:44
【问题描述】:
我正在尝试使用 FlowLayout 让我的面板垂直对齐。我希望右下角与右上面板的底部对齐,而不是该行的底部。
这是我所做的:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BigPanel extends JPanel {
@Override
public Component.BaselineResizeBehavior getBaselineResizeBehavior() {
return Component.BaselineResizeBehavior.CONSTANT_ASCENT;
}
@Override
public int getBaseline(int width, int height) {
return 0;
}
public BigPanel() {
FlowLayout layout = new FlowLayout();
layout.setAlignOnBaseline(true);
this.setLayout(layout);
this.add(new Panel1()); // size: 340x, 160y
this.add(new Panel2()); // size: 340x, 120y
this.add(new Panel3()); // size: 340x, 160y
this.add(new Panel4()); // size: 340x, 300y
}
}
如何将面板和组件简单地锚定到一组坐标?上周我多次遇到这个问题,并为我的 jlabels 等使用荒谬的解决方法。
现在的样子:
【问题讨论】:
-
这是
FlowLayout的本质。我能想到的唯一可以开箱即用的布局是GridBagLayout,但这似乎付出了很多努力却收效甚微。另一种选择是使用GridLayout之类的东西并创建两个面板,每列一个,并分别布局子组件
标签: java jpanel vertical-alignment