Проблема с размерами и позиционированием элементов Java Swing - PullRequest
2 голосов
/ 20 мая 2011

Я создаю Java-приложение Swing, и мне очень трудно правильно расположить элементы.

Как мне сделать так, чтобы поля ввода и поля со списком имели высоту 30px? Кроме того, как мне сделать так, чтобы правый край всей текстовой строки располагался вертикально, а левый край всех полей ввода располагался вертикально?

У меня есть основная JPanel, которая называется BoxLayout.Y_AXIS, а затем у меня есть 6 JPanel на основной JPanel. Эти 6 JPanels установлены на BorderLayout, и, как вы можете видеть, я использовал WEST для JLabels и EAST для полей ввода.

Вот фрагмент того, как я создаю 1-ю панель, которая находится сверху главной панели.

private JPanel getProtocolPanel() {

    protocolNumber.setBorder(BorderFactory.createLineBorder(Color.GREEN));
    protocolNumberInput.setBorder(BorderFactory.createLineBorder(Color.CYAN));
    protocolNumber.setVerticalAlignment(SwingConstants.TOP);

    protocolPanel = new JPanel();
    protocolPanel.setLayout(new BorderLayout());

    protocolPanel.setBorder(BorderFactory.createLineBorder(Color.RED));
    protocolPanel.add(protocolNumber, BorderLayout.WEST);
    protocolPanel.add(protocolNumberInput, BorderLayout.EAST);

    return protocolPanel;
}

enter image description here

Дайте мне знать, если есть лучший способ сделать этот тип макета. Спасибо.

1 Ответ

5 голосов
/ 20 мая 2011

Вам придется либо вкладывать макеты друг в друга, либо использовать более сложный макет (Spring, GridBag, Mig), либо оба, чтобы получить желаемый эффект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...