Java (Swing): влияние высоты JList в GridBagLayout - PullRequest
0 голосов
/ 03 января 2009

Я хочу построить в Java диалог со списком и несколькими кнопками под ним. Список заканчивается с той же высотой, что и кнопки (около одной строки), а весь диалог - около двух строк высоты.

Тем не менее, я бы хотел, чтобы диалог был выше (возможно, на 10 строк), а JList занимал большую часть пространства. это на работу. Есть идеи?

Вот мой текущий код:

//layout
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;

int y = 0;
//List
gbc.gridx = 0;
gbc.gridy = y;
gbc.weighty = 3;
gbc.weightx = 1;
gbc.gridwidth= 3;
add(new JScrollPane(_myList), gbc);
_myList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

// Buttons
gbc.gridx = 1;
gbc.gridy = ++y;
gbc.gridwidth = 1;
gbc.weighty = 0;
add(_Save, gbc);
gbc.gridx = 2;
add(_Cancel, gbc);

Ответы [ 4 ]

2 голосов
/ 03 января 2009

Для списка установите вес Y = 1 вместо 3. Установка 3 сделает пространство для списка больше, чем сам список. В 99,9% случаев используется GridBagLayout, значения weightX / Y всегда должны быть 0 или 1. Также gridWidth, вероятно, должно быть 2 вместо 3.

1 голос
/ 05 января 2009

Вы могли бы также подумать о вызове _myList.setVisibleRowCount(n) для принудительного выбора предпочтительного размера (в количестве видимых строк) для вашего списка.

0 голосов
/ 03 января 2009

Найдена проблема .. и это не имеет ничего общего с кодом макета.

Я добавил ноль в ListModel, и это, казалось, запутало LayoutManager. Закрыл бы вопрос, но пока не хватило моджо ...

0 голосов
/ 03 января 2009

Я сделал еще несколько опросов, и, очевидно, поведение вызвано количеством элементов в ListModel _myList. Когда я заполняю его большим количеством элементов, чем одним или двумя, имеющимися в моем текущем использовании, список отображается правильно. Надеюсь, это поможет определить проблему и найти решение ..

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