我想将项目添加到我的列表中。我的列表首先由讲师自动调用的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);
}
}
当我运行此代码时,它会在最后一行images_List.setModel(listModel);
如何显示这些项目,允许多项选择,添加鼠标点击事件?
答案 0 :(得分: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;
}
您是否也可以使用这些新问题更新您的问题,因为您的“新问题答案”将浮动到底部
答案 1 :(得分:0)
我发现了我的大错:( :(我调用了函数,在调用initComponent()之前将图像设置到列表中,这就是抛出异常的原因..
一切都是为了你的答案,但我还有更多问题: 1)我可以将ToolTipText添加到列表项,我想添加图像路径 2)你对“我的接受率”是什么意思......