gpt4 book ai didi

java - 将项目添加到 JList

转载 作者:行者123 更新时间:2023-12-02 00:22:08 28 4
gpt4 key购买 nike

我想将项目添加到我的列表中。我的列表首先由讲师自动调用的 initComponent() 初始化(我使用的是 NetBeans,所有 GUI 组件均由程序自动初始化)。

我的问题是:

  1. 假设我们有一个 Frame1,在这个框架中我们有一个按钮“显示图像”,当点击它时
  2. 打开具有 JList 的 Frame2...
  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);

如何显示这些项目、允许多选、添加鼠标单击事件?

最佳答案

是的,您可以添加工具提示。您只需在渲染器返回的组件上设置工具提示文本。 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;
}

您能否也用这些新问题更新您的问题,因为您的“新问题的答案”将会浮到底部

关于java - 将项目添加到 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10751496/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com