MigLayout - нужна помощь по использованию параметров док-станции (или нужна альтернатива) - PullRequest
3 голосов
/ 10 июля 2011

Я только начал использовать MigLayout для SWING на Java, и мне он до сих пор нравится.Однако единственное, что параметры док-станции не работают так, как я думал, и они не могут понять, что я делаю неправильно.

Проблема в том, что япопытка добавить JButton внутри JPanel и закрепление его с правой стороны, используя panel.add (кнопка, "восток"); .Хотя он фактически делает его самым правым компонентом, он все равно занимает то же пространство, что и в flowLayout.То, что я хотел бы сделать, это придерживаться правой стороны панели.

Вот некоторый скомпилированный код, который воссоздает проблему:

public class MigLayoutTest extends JFrame
{
  public MigLayoutTest()
  {
    setSize(500,500);

    JPanel panel = new JPanel(new MigLayout());
    panel.setBackground(Color.YELLOW);
    setContentPane(panel);
    panel.setSize(500,500);
    panel.add(new JButton("Dock east"), "east");
    panel.add(new JButton("No dock"));
  }

  public static void main(String[] args)
  {
    JFrame frame = new MigLayoutTest();
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Вот как выглядит вывод: MigLayoutTest result

И вот где я хотел бы, чтобы кнопка «восточная док-станция»: MigLayoutTest expected result

Если я неправильно использую параметры, я бы хотел, чтобы кто-то мог мне сказатькак я должен заставить мою кнопку закрепить на правой стороне панели.

Спасибо!

1 Ответ

4 голосов
/ 10 июля 2011

Вы должны указать параметры роста :

new MigLayout("", "[grow]", "[]")

Будьте осторожны, как вы его используете - это может не сработать так, как вы думаете.Вот хороший обзор возможностей MigLayout http://www.miglayout.com/QuickStart.pdf

...