我想按下如下所示的按钮:
这是我的代码:
import java.awt.Dimension;
import javax.swing.*;
import net.miginfocom.swing.MigLayout;
public class MigLayoutTest extends JFrame {
public static void main(String[] args) {
JPanel content = new JPanel();
content.setLayout(new MigLayout("center, wrap, gapy 20"));
JButton buttonA = new JButton("button A");
buttonA.setPreferredSize(new Dimension(100,30));
JButton buttonB = new JButton("button B");
buttonB.setPreferredSize(new Dimension(80,80));
JButton buttonC = new JButton("button C");
buttonC.setPreferredSize(new Dimension(300,40));
JButton buttonD = new JButton("button D");
buttonD.setPreferredSize(new Dimension(200,60));
content.add(buttonA);
content.add(buttonB);
content.add(buttonC);
content.add(buttonD);
JFrame frame = new JFrame("MigLayout Test");
frame.setContentPane(content);
frame.setSize(600, 400);
frame.setVisible(true);
}
}
按钮居中,但不是垂直。
有什么建议吗?提前谢谢。
答案 0 :(得分:5)
白皮书定义了确切的语法:
al / align alignx [aligny]
继续:
可以将对齐指定为UnitValue或AlignKeyword。
因此,要使整个块沿两个轴居中,使用AlignKeyword需要两个参数:
new MigLayout("al center center, wrap, gapy 20"); // centers in both directions
下一句:
如果使用了AlignKeyword,则"对齐"关键字可以省略。
这将是:
new MigLayout("center center, wrap, gapy 20"); // centers horizontally only
虽然不起作用,但在解析参数时看起来有点小故障。