2015-02-25 3 views
0

У меня есть JList в GridBagLayout. После запуска окна это выглядит просто прекрасно, но когда я добавляю элементы в JList, он сразу же заполняет все окно и перекрывает другие компоненты.JList заполняет все окно при добавлении элементов

paragraphlst = new JList<ParagraphItem>(); 
    paragraphlst.setValueIsAdjusting(true); 
    paragraphlst.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
    paragraphlst.setAutoscrolls(true); 

    paragraphlstmodel = new DefaultListModel<ParagraphItem>(); 
    paragraphlst.setModel(paragraphlstmodel); 

Добавление элемента:

view.getParagraphLstModel().addElement(
         new ParagraphItem(rt.getNumString() + " " 
           + paragraphString, wordMLPackage 
           .getMainDocumentPart().getContent() 
           .indexOf(jaxbNode))); 

окно после добавления элементов:

enter image description here

Как это должно выглядеть:

enter image description here

+1

Для лучшей помощи рано, опубликовать [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный пример поддающегося проверке) или [SSCCE] (http://www.sscce.org/) (Короткое, самосохранение, правильный пример). –

+1

Вы помещали 'JList' в' JScrollPane'? – MadProgrammer

ответ

0

Я решил это сам, проблема была в том, что я не проверял длину строки, которую я добавляю в список. Со следующим кодом он работает.

  temp = temp.length() > 15 ? temp.substring(0, 15) : temp; 
      temp = rt.getNumString()+" "+temp; 

      view.getParagraphLstModel().addElement(
        new ParagraphItem(temp, wordMLPackage 
          .getMainDocumentPart().getContent() 
          .indexOf(jaxbNode))); 
Смежные вопросы