因为在项目中碰到表格的某一列的值有时候会长的有些另类,导致不能看全其中的内容。
很简单的场景:当鼠标移动到表格的目标列时,将该单元格的内容以tip提示的形式显示,鼠标一离开该单元格,tip提示立刻消失。
当时想,可能要用鼠标事件,然后用table设置tip提示,结果只能完成一半的效果,果断放弃。然后想到用渲染器器,
渲染器会将表格中的每个单元格都进行渲染。这样在table里用下面写的渲染器设置为默认的渲染器,就可以了。
table的鼠标事件都不用了。
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class MyRenderer extends DefaultTableCellRenderer
{
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
row, column);
if (column == 4 && !"".equals(value.toString()))
{
setToolTipText(value.toString());
}
else
{
setToolTipText(null);
}
return this;
}
}