[英]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.