Макет масштабирует мой 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);

У меня нет, если панели имеют горизонтальную прокрутку, я просто хочу, чтобы они были одинаковой ширины. Может кто-нибудь, более знакомый с сетками и макетами, дать мне несколько указателей или вы видите что-то неправильное в приведенном выше коде для значений?

Спасибо!

0 ответов

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