java - 如何使用 MigLayout 在面板上绘制分隔符

标签 java swing miglayout

这是一个 MigLayout 新手问题。我想知道如何在面板的宽度上从标签的末端绘制分隔符。

这是我的示例代码:

package com.ndh.swingjunk;

import java.awt.*;
import javax.swing.*;
import net.miginfocom.swing.MigLayout;

class MyJFrame extends JFrame {
    public MyJFrame() {
        super();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JLabel label = new JLabel("foo");
        label.setFont(new Font("Tahoma", Font.BOLD, 11));
        JSeparator separator = new JSeparator();
        JLabel anotherLabel = new JLabel("some other label");
        anotherLabel.setFont(new Font("Tahoma", Font.PLAIN, 11));
        JButton button1 = new JButton("button 1");
        JButton button2 = new JButton("button 2");
        JPanel panel = new JPanel(new MigLayout());
        panel.add(label);
        panel.add(separator, "growx, wrap");
        panel.add(anotherLabel);
        panel.add(button1);
        panel.add(button2);
        getContentPane().add(panel);
        pack();
    }
}

public class SeparatorLayoutQuestion {
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override public void run() {new MyJFrame().setVisible(true);}});}}

结果如下:

image of messed-up layout

这太蹩脚了。我希望分隔符从“Foo”的末尾延伸到面板的末尾,一直穿过按钮 2。

最佳答案

这是对我有用的方法,我必须使用“拆分”以便标签和分隔符可以共享同一个单元格:

JPanel panel = new JPanel(new MigLayout());
panel.add(label, "split 2, span");
panel.add(separator, "growx, wrap");
panel.add(anotherLabel);
panel.add(button1);
panel.add(button2);

关于java - 如何使用 MigLayout 在面板上绘制分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142124/

相关文章:

java - 为什么 Jave 方法不返回一个元组而不是一个对象引用(或 null)?

java - 在 for 循环中创建 JMenuitem

java - 是否可以更改 JTabbedPane 的布局?

java - SimpleDateFormat 解析不遵守时区

java - 二叉搜索树中的重复项

java - 如何在定义后立即按顺序重用代码?

Java 代码兼容性问题(我的二进制文件也不工作)

java - Java 中的 JFrame

java - Spany 2 与 MigLayout 一行

java - miglayout中的相对布局