[英]adding items to JList
我想將項目添加到我的列表中。 我的列表首先由講師自動調用的initComponent()初始化(我正在使用NetBeans,並且所有GUI組件都由prog自動初始化)。
我的問題是:
以下是我要在列表中列出所有圖像的代碼:
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);
如何顯示這些項目,允許多選,添加鼠標單擊事件?
是的,您可以添加工具提示。 您只需在渲染器返回的組件上設置工具提示文本。 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;
}
您還可以用這些新問題來更新您的問題嗎,因為“新問題的答案”將浮動到底部
我發現了我的大錯誤:( :(我在調用initComponent()之前調用了將圖像設置為列表的函數,這就是引發異常的原因。
謝謝所有,但我還有其他問題:1)我可以將ToolTipText添加到列表項,我想添加圖像路徑2)您對“我的接受率”是什么意思...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.