2012-05-25 4 views
0

Я хочу добавить элементы в список. Мой список сначала инициализируется initComponent(), который автоматически вызывается инструктором (я использую NetBeans, и все компоненты GUI инициализируются автоматически prog).добавление предметов в JList

Мои вопросы:

  1. давайте говорить, что у нас есть Frame1, в этом кадре у нас есть кнопка «показать изображения», когда нажмите на ней
  2. открытый frame2, который имеет JList ...
  3. изображения перечени добавляются через Frame3 успешно ...

Ниже мой код, где я хочу, чтобы перечислить все изображения в моем списке:

private void setImagesToList() 
{ 
    ***//bLayer is my Business Layer and _getNomOfSelectedImg() returns number of 
    //images.*** 

    int imagesCount = bLayer._getNomOfSelectedImg(); 

    ***// through my searches i fount that i've to create ListModel to hold my items*** 
    DefaultListModel listModel = new DefaultListModel(); 

    if (imagesCount > 0) // there is/are image(s) 
    { 
     for(int i=0; i < imagesCount ; i++) 
     { 
      // ***i want to add image name and tooltip (image path) *** 
      String imgName = bLayer._getImageName(i); 
      String imgPath = bLayer._getImagePath(i); 
      listModel.add(i, imgName); 
      break; 
     } 
     images_List.setModel(listModel); 
    } 
} 

, когда я запускаю этот код он бросает NullPointerException в последней строке images_List.setModel(listModel);

Что делать, чтобы отобразить эти элементы, позволяют множественный выбор, добавив событие щелчка мыши?

+1

Исключение вполне понятно: вы получаете NPE, потому что 'images_List' имеет значение null. Где вы инициализируете его значение? – assylias

+0

@Eng Басма, пожалуйста, увеличьте коэффициент приема. Это, в свою очередь, увеличит изменение получаемых ответов. – Hidde

ответ

3

Да, вы можете добавить всплывающие подсказки , Вам просто нужно установить текст всплывающей подсказки для компонента, возвращаемого средством визуализации. JList будет использовать эту всплывающую подсказку компонента, чтобы определить правильный текст всплывающей подсказки. Это можно увидеть в JList#getTooltipText реализации которого я скопировал соответствующую часть

Component rComponent = r.getListCellRendererComponent(
         this, getModel().getElementAt(index), index, 
         lsm.isSelectedIndex(index), 
         (hasFocus() && (lsm.getLeadSelectionIndex() == 
             index))); 

      if(rComponent instanceof JComponent) { 
       MouseEvent  newEvent; 

       p.translate(-cellBounds.x, -cellBounds.y); 
       newEvent = new MouseEvent(rComponent, event.getID(), 
              event.getWhen(), 
              event.getModifiers(), 
              p.x, p.y, 
              event.getXOnScreen(), 
              event.getYOnScreen(), 
              event.getClickCount(), 
              event.isPopupTrigger(), 
              MouseEvent.NOBUTTON); 

       String tip = ((JComponent)rComponent).getToolTipText(
              newEvent); 

       if (tip != null) { 
        return tip; 
       } 

Не могли бы вы также обновить свой вопрос с теми новыми вопросами, так как ваш «ответ с новым вопросом» будет плавать на дно

0

я нашел мою большую ошибку :(:(я назвал функции, которые устанавливают изображения в список перед вызовом InitComponent(), именно поэтому было брошено исключение ..

Thnx все для ответа, но я имею больше вопросов: 1) могу ли я добавить ToolTipText к элементу списка, я хочу, чтобы добавить путь изображения 2) что вы имеете в виду о «моем принимают отношение» ...

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