Макет масштабирует мой JList's
Я использую пример DualListBox.java, но проблема в том, что ширина JList масштабируется в зависимости от длины записи. В идеале я хочу left JList
занять 40% ширины, JButtons
занять 10% и right JList
занять оставшиеся 40%.
private void initScreen()
{
setBorder(BorderFactory.createEtchedBorder());
setLayout(new GridBagLayout());
title = new JTextField("");
title.setEditable(false);
add(title, new GridBagConstraints(0, 0, 3, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
EMPTY_INSETS, 0, 0));
sourceLabel = new JLabel(DEFAULT_SOURCE_CHOICE_LABEL);
sourceListModel = new SortedListModel();
sourceList = new JList(sourceListModel);
sourceList.addListSelectionListener(new AddSelectionListener());
add(sourceLabel, new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE,
EMPTY_INSETS, 0, 0));
add(new JScrollPane(sourceList), new GridBagConstraints(0, 2, 1, 5, .5, 1, GridBagConstraints.CENTER,
GridBagConstraints.BOTH, EMPTY_INSETS, 0, 0));
addButton = new JButton(ADD_BUTTON_LABEL);
add(addButton, new GridBagConstraints(1, 3, 1, 2, 0, .25, GridBagConstraints.CENTER, GridBagConstraints.NONE,
EMPTY_INSETS, 0, 0));
addButton.addActionListener(new AddListener());
removeButton = new JButton(REMOVE_BUTTON_LABEL);
add(removeButton, new GridBagConstraints(1, 5, 1, 2, 0, .25, GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(0, 5, 0, 5), 0, 0));
removeButton.addActionListener(new RemoveListener());
destLabel = new JLabel(DEFAULT_DEST_CHOICE_LABEL);
destListModel = new SortedListModel();
destList = new JList(destListModel);
destList.addListSelectionListener(new RemoveSelectionListener());
add(destLabel, new GridBagConstraints(2, 1, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE,
EMPTY_INSETS, 0, 0));
add(new JScrollPane(destList), new GridBagConstraints(2, 2, 1, 5, .5, 1.0, GridBagConstraints.CENTER,
GridBagConstraints.BOTH, EMPTY_INSETS, 0, 0));
}
DualListBBox()
добавляется в JPanel, который добавляется в компактную сетку
SpringUtilities.makeCompactGrid(content, 1, 1, 6, 6, 6, 6);
У меня нет, если панели имеют горизонтальную прокрутку, я просто хочу, чтобы они были одинаковой ширины. Может кто-нибудь, более знакомый с сетками и макетами, дать мне несколько указателей или вы видите что-то неправильное в приведенном выше коде для значений?
Спасибо!