2013-06-04 2 views
-1

http://i.stack.imgur.com/8rQW1.pngСтранный JList ошибка

enter image description here

JScrollPane scrollPane_4 = new JScrollPane(); 
    scrollPane_4.setViewportView(list_4); 

final JList list_4 = new JList(modelItems); 
    list_4.setBounds(428, 39, 294, 187); 

    JButton btnNewButton_4 = new JButton("Refresh"); 
    btnNewButton_4.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      modelItems.clear(); 
      arrayOfItems.clear(); 
      for(RSItem d : Inventory.getAll()) 
      { 
       arrayOfItems.add(d); 
       modelItems.addElement("Item: "+d.getID()+" at spot: "+(d.getIndex()+1)); 
      } 
     } 
    }); 

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

+1

'list_4.setBounds (428, 39, 294, 187);' не выглядит правильным. Удалите эту строку целиком - макет должен взять на себя ответственность за правильное размещение. – Howard

+1

Я бы сказал, что это «list_4.setBounds (428, 39, 294, 187)», это плохая идея ... Во-вторых, это либо проблема с смешиванием легких и тяжелых весовых компонентов, либо плохая пользовательская картина или другая проблема, не выделенная фрагментом ... – MadProgrammer

+0

Я использую абсолютные оценки. Вот почему я устанавливаю границы. Менеджер макета установлен в значение null. @mKorbel Я бы не смог опубликовать SSCCE, поскольку я использую сторонний API. Код не будет выполняться, так как потребуется запустить сценарий внутри отдельного (платного) приложения. – Assume

ответ

2

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

scrollPane_4.setViewportView(list_4); 
    final JList list_4 = new JList(modelItems); 

находятся в обратном порядке. Сначала вы устанавливаете представление в видовом экране, прежде чем объявлять свой список. Убедитесь, что вы не устанавливаете представление в null в этой строке и в обратном порядке этих двух.

+0

или использовать modelItems – mKorbel

+0

I C & P'd, что после вставки прослушивателя Action, поэтому он вышел из строя. Почему вы предполагаете, что это не мой код? Я заверяю вас, что все это так. – Assume

+0

@ user2450444 Я до сих пор не понимаю, почему добавление ' Список действий ener' будет смешивать эти две линии. Очевидно, что ваш код не может скомпилироваться, следовательно, предполагается, что он не является «исходным» кодом, который вы запускаете. В любом случае, ваши вызовы 'setBounds', скорее всего, являются одной из ваших проблем (вы никогда не должны звонить setBounds, оставьте это в LayoutManager). Также похоже, что вы добавляете свой список вместо своей scrollpane в компонент hierrchy. Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org). –

Смежные вопросы