[英]JList with tooltip text in DafaultListModel
我有一個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(...)
。
編輯:
我想將自定義文本保存在模型中
然后,您需要在模型中保存一個自定義對象,該對象包含列表中顯示的值和工具提示的文本。
請查看帶有隱藏數據的組合框,以獲取使用此方法創建對象的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.