我有一张表,每行代表一张图片。在路径列中存储其绝对路径。字符串有点长,我想当我将鼠标悬停在特定的单元格上时,工具提示应该在包含单元格信息的鼠标旁边弹出。如何将工具提示添加到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. 将工具提示添加到网格视图中的某些单元格
- 5. 如何将工具提示添加到表格中的td
- 6. 将JButton添加到JTable单元格+ DB
- 7. 如何将JComboBox添加到JTable中的特定单元格
- 8. 在JTable的单元格上方显示工具提示
- 9. Datatables:将工具提示添加到动态加载的所有单元格
- 10. 如何在Java中添加表格单元格的工具提示SWT
- 11. 将dojo工具提示对话框添加到每个表格单元格
- 12. 将工具提示添加到CStatic中
- 13. SlickGrid中的单元格工具提示
- 14. 如何为vaadin表格的项目或单元格添加工具提示
- 15. JUnit测试JTable单元格工具提示
- 16. 如何将UndoableEditListener添加到JTable单元格?
- 17. 将按钮添加到Jtable中的netbeans中的单元格
- 18. 如何为primeng数据表中的每个单元格添加工具提示?
- 19. Webix将工具提示添加到treetable中的特定元素
- 20. 如何将工具提示添加到Windows窗体中的“X”?
- 21. 如何将工具提示添加到TeeChart的Box图中?
- 22. 如何将工具提示添加到Winforms中的Combobox项目
- 23. 将工具提示添加到上下文菜单中的“Word”
- 24. 将工具提示添加到UIbutton
- 25. 将工具提示添加到StripMenuItem C#
- 26. 将工具提示添加到组框
- 27. 如何将工具提示添加到SWT/JFace中的表格列标题中
- 28. Dgrid树为每个单元格添加html工具提示
- 29. 如何将工具提示添加到图表的图例元素中dimple.js
- 30. 单元格上的工具提示。 GWT
你不能调用super.getTableCellRendererComponent。 – codenamezero 2017-01-02 18:19:47
@codenamezero为什么不呢?你知道在示例代码中,我将'DefaultTableCellRenderer'分类为非抽象方式的方法,本身就是'JLabel'? – 2017-01-02 21:43:17