gpt4 book ai didi

java - DafaultListModel 中带有工具提示文本的 JList

转载 作者:行者123 更新时间:2023-12-02 02:48:48 25 4
gpt4 key购买 nike

我有一个 JList,JList 的每个项目都有不同的显示文本和工具提示文本。我想对 JList 使用“DefaultListModel”。我的问题是,在将项目添加到 DefaultListModel 时是否可以以某种方式保存工具提示文本。

谢谢。

最佳答案

您可以重写 getToolTipText(...) 方法来提供自定义工具提示。

例如:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ListToolTip extends JFrame
{
public ListToolTip()
{
DefaultListModel model = new DefaultListModel();
model.addElement("one");
model.addElement("two");
model.addElement("three");
model.addElement("four");
model.addElement("five");
model.addElement("six");
model.addElement("seven");
model.addElement("eight");
model.addElement("nine");
model.addElement("ten");

JList list = new JList( model )
{
public String getToolTipText( MouseEvent e )
{
int row = locationToIndex( e.getPoint() );
Object o = getModel().getElementAt(row);
return o.toString();
}

public Point getToolTipLocation(MouseEvent e)
{
int row = locationToIndex( e.getPoint() );
Rectangle r = getCellBounds(row, row);
return new Point(r.width, r.y);
}
};

JScrollPane scrollPane = new JScrollPane( list );
getContentPane().add( scrollPane );
}

public static void main(String[] args)
{
ListToolTip frame = new ListToolTip();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.setSize(400, 100);
frame.setVisible( true );
}
}

无需重写getToolTipLocation(...)

编辑:

I want to save the custom text in the model

然后,您需要在模型中保存一个自定义对象,其中包含列表中显示的值和工具提示的文本。

查看ComboBox With Hidden Data有关使用此方法创建对象的示例。

关于java - DafaultListModel 中带有工具提示文本的 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44161110/

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