java swing компоновка двух компонентов

    +--------------------------------------------+
    |                 +-------+      +----------+|
    |                 | +---+ |      |  +-----+ ||
    |                 | | A | |      |  |  B  | ||
    |                 | +---+ |      |  +-----+ ||
    |                 +-------+      +----------+|
    +--------------------------------------------+
                          ^
                          |
                          |
                        Center

Предыстория: У меня есть

  • JButton ("A"), размер 50x25, внутри JPanel (FlowLayout.CENTER)
  • JLabel ("B"), размер 100x25, внутри JPanel (FlowLayout.RIGHT)
  • эти два JPanel находятся в JPanel

Желаемый результат: Я хочу, чтобы

  • JButton "A" всегда был центрирован по горизонтали,
  • JLabel "B" всегда был заподлицо справа.

То, что я пробовал: Эти не сработали для меня

  • BorderLayout не работает для меня, потому что JButton "A" смещен ВЛЕВО:
  • Я бы предпочел не ставить невидимый компонент WEST, чтобы отменить смещение

    +--------------------------------------------+
    | +-------+ +----------+|
    | | +---+ | | +-----+ ||
    | | | | A | | | | | | | | | B | ||
    | | +---+ | | +-----+ ||
    | +-------+ +----------+|
    +--------------------------------------------+
     ^ ^
     | |
     | |
     | Центр
     |
     Сдвиг влево
    
  • GridLayout не работает, потому что я не хочу, чтобы "A" и "B" были развернуты

Благодарю за любые предложения!

p.s.

JButton/JLabel находятся каждый внутри своих собственных JPanels, потому что БЕЗ Jpanel, BorderLayout.CENTER расширяет JButton по всей ширине основной панели (до левого края JLabel). JPanels не нужны/критичны для постановки проблемы

Заключение:

  • Я выбрал ответ "Hovercraft Full Of Eels", опубликованный ниже. Спасибо!
6
задан casio car 21 October 2011 в 16:48
поделиться