Как нарисовать разделитель на панели с помощью MigLayout - PullRequest
5 голосов
/ 26 мая 2011

Это вопрос MigLayout-newbie.Я хотел бы знать, как нарисовать разделитель от конца метки по ширине панели.

Вот мой пример кода:

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.

Ответы [ 2 ]

6 голосов
/ 26 мая 2011

Вот что сработало для меня, мне пришлось использовать «split», чтобы метка и разделитель могли использовать одну и ту же ячейку:

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);
1 голос
/ 26 мая 2011

попробуйте добавить

 "span 3"

к первому ярлыку

...