Как получить ширину и высоту каждой ячейки сетки в GridBagLayout?

Везде, где я ищу помощь с GridBagLayout, помогает только GridBagConstraints. Я полностью понимаю эту часть, меня смущают методы внутри GridBagLayout.

Таким образом, я понял, что поля columnWidths и rowHeights предназначены для переопределения ширины и высоты ячеек GridBagLayout и являются нулевыми, пока не будут установлены пользователем. (Я реализовал эти поля в моей программе ниже). Так как же узнать фактическую ширину и высоту ячейки?

введите описание изображения здесь

Я в основном пытаюсь переопределить метод рисования контейнера, чтобы нарисовать сетку, которая показывает, где каждая ячейка начинается и заканчивается (где ширина сетки и высота сетки не имеют значения). Единственная вещь, которая выглядит применимой, - это getLayoutInfo (родительский контейнер, int sizeflag), но GridBagLayoutInfo не имеет методов или полей, и я понятия не имею, что это означает под sizeflag.

РЕДАКТИРОВАТЬ: Это в основном сетка, которую я хотел бы нарисовать, но, конечно, я хочу убедиться, что она будет работать на любом контейнере, где gridlayout является менеджером макета. Это фактические координаты gridx и gridy, выделенные красным. Я просто не знаю, как получить нужные мне значения в методе рисования. введите описание изображения здесь

1 ответ

GridBagLayout имеет метод getLayoutDimensions(), который возвращает массив из двух массивов. Первый массив - ширина столбца, а второй - высота строки. Этот метод рассматривает вставки, установленные в GridBagConstrains каждой ячейки, как часть ячейки.

Я знаю, что этот вопрос устарел, но недавно я столкнулся с схожей проблемой и нашел ее во время поиска решения.

Другие вопросы по тегам