日期:2014-05-20  浏览次数:20683 次

问两个问题,关于swing程序使用图标的
1.swing的JTree结点图标能不能设置为动画图标,如果能怎么实现?
2.JTable里面的某一列数据想显示为图标,怎么做?

最好详细说说实现的步骤


------解决方案--------------------
动画图标?不能吧
------解决方案--------------------
理论上应该可以
cellreader
------解决方案--------------------
1.swing的JTree结点图标能不能设置为动画图标,如果能怎么实现?
把要显示的图形类型模式改成gif的就可以了。

2.JTable里面的某一列数据想显示为图标,怎么做?
要用多层嵌套。
------解决方案--------------------
2.JTable里面的某一列数据想显示为图标,怎么做?
class MyRender extends JLabel implements TableCellRenderer
{
Icon icon;
public MyRender(Icon icon)
{
this.icon = icon;
}
public component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
//假设将第一列设为图标
if(column == 0)
{
this.setIcon(icon);
}
return this;
}

}
...
...
jTable.setDefaultRenderer(columnClass,new MyRender(icon))
------解决方案--------------------
empireconquer 正解
------解决方案--------------------
class MyRender implements TableCellRenderer
{
Icon icon;
public MyRender(Icon icon)
{
this.icon = icon;
}
public component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
//假设将第一列设为图标
JLabel ret = new JLabel();
ret.setText(value.toString());
if(column == 0)
{
ret.setIcon(icon);
}
return ret;
}

}
...
...
jTable.setDefaultRenderer(columnClass,new MyRender(icon))
这样应该没有问题了。