我有一张表,每行代表一张图片。在路径列中存储其绝对路径。字符串有点长,我想当我将鼠标悬停在特定的单元格上时,工具提示应该在包含单元格信息的鼠标旁边弹出。如何将工具提示添加到jtable中的单元格?
回答
我假定您没有为该路径编写自定义CellRenderer
,而只是使用DefaultTableCellRenderer
。您应该子类DefaultTableCellRenderer
并在getTableCellRendererComponent
中设置工具提示。然后设置列的渲染器。
class PathCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(
JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
JLabel c = (JLabel)super.getTableCellRendererComponent(// params from above);
// This...
String pathValue = <getYourPathValue>; // Could be value.toString()
c.setToolTipText(pathValue);
// ...OR this probably works in your case:
c.setToolTipText(c.getText());
return c;
}
}
...
pathColumn.setCellRenderer(new PathCellRenderer()); // If your path is of specific class (e.g. java.io.File) you could set the renderer for that type
...
你说你在一个单元格中存储一个绝对路径。您可能正在使用JLabel
来设置绝对路径字符串。假设您在单元格有一个标签,使用HTML标签表达提示内容:
JLabel label = new JLabel("Bla bla");
label.setToolTipText("<html><p>information about cell</p></html>");
setToolTipText()
可以,如果你使用的不是JLabel的其他东西可用于其他一些Swing组件。
deffinetly nope ... – 2012-02-27 15:07:58
*“deffinetly nope”*我想知道@deporter是否理解该评论。我当然不知道。 :( – 2012-02-27 15:11:53
请更精确一点:_在你的cell_中有一个标签可能会引起误解(在单元格中不应该有组件),而是一个由渲染器提供的标签。 ) – kleopatra 2012-02-27 15:56:01
只需使用下面的代码而创建的JTable对象。
JTable auditTable = new JTable(){
//Implement table cell tool tips.
public String getToolTipText(MouseEvent e) {
String tip = null;
java.awt.Point p = e.getPoint();
int rowIndex = rowAtPoint(p);
int colIndex = columnAtPoint(p);
try {
tip = getValueAt(rowIndex, colIndex).toString();
} catch (RuntimeException e1) {
//catch null pointer exception if mouse is over an empty line
}
return tip;
}
};
实际上,我认为它比接受的解决方案更有效率。 – 2014-03-03 21:30:11
当我们根据某一列对表格进行排序时,这可能不起作用。 – 2016-11-18 10:55:35
使用'getRowSorter()。convertRowIndexToModel(rowIndex)'和'getRowSorter()。convertRowIndexToModel(rowIndex)'从模型中获取确切的行。 – 2016-11-18 13:34:42
- 1. 如何将工具提示添加到JTable的行
- 2. 如何添加工具提示到datagrid单元格
- 3. GWT:将GWTP工具提示添加到CellTable单元格
- 4. 如何将工具提示添加到表格中的td
- 5. 将JButton添加到JTable单元格+ DB
- 6. 如何将JComboBox添加到JTable中的特定单元格
- 7. 在JTable的单元格上方显示工具提示
- 8. Datatables:将工具提示添加到动态加载的所有单元格
- 9. SlickGrid中的单元格工具提示
- 10. 如何为vaadin表格的项目或单元格添加工具提示
- 11. JUnit测试JTable单元格工具提示
- 12. 将按钮添加到Jtable中的netbeans中的单元格
- 13. 如何为primeng数据表中的每个单元格添加工具提示?
- 14. 如何将工具提示添加到Winforms中的Combobox项目
- 15. 如何将工具提示添加到Windows窗体中的“X”?
- 16. 将工具提示添加到组框
- 17. 将工具提示添加到StripMenuItem C#
- 18. 将工具提示添加到UIbutton
- 19. 如何将工具提示添加到SWT/JFace中的表格列标题中
- 20. 如何将工具提示添加到图表的图例元素中dimple.js
- 21. 单元格上的工具提示。 GWT
- 22. 将工具提示尾部添加到CSS下拉菜单中?
- 23. 如何将空白行添加到引导工具提示中
- 24. 如何将提示或工具提示添加到C#Winforms中的标签?
- 25. 如何将工具提示添加到鼠标上的下拉菜单中jquery
- 26. 如何将下拉菜单添加到JTable单元
- 27. 将JComboBox添加到JTable单元格。选择的项目不留
- 28. 如何将NSTableView单元格添加到单元格的填充?
- 29. 如何制作表格单元格工具提示(Ext.grid.Panel)?
- 30. 如何在DataGridView单元格中为工具提示设置autoPopDelay?
你不能调用super.getTableCellRendererComponent。 – codenamezero 2017-01-02 18:19:47
@codenamezero为什么不呢?你知道在示例代码中,我将'DefaultTableCellRenderer'分类为非抽象方式的方法,本身就是'JLabel'? – 2017-01-02 21:43:17