JTable的某一个字段里面怎么放置图片呢?我这边放一个图片可以直接放icon,但是放多个就不知道该怎么放了

www203 2005-06-20 05:09:59
JTable的某一个字段里面怎么放置图片呢?
我这边放一个图片可以直接放icon,
但是放多个就不知道该怎么放了
请教大家
...全文
347 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
www203 2005-06-22
  • 打赏
  • 举报
回复
public Class getColumnClass(int c){
return this.getValueAt(0,c).getClass() ;
}

我如此写
但是反应不灵敏
System.out.println(this.getValueAt(0,c).getClass() ) ;
也能看出来是JTextPane

但是还是不行
fog628 2005-06-22
  • 打赏
  • 举报
回复
回复人: www203(水户洋平) ( ) 信誉:102 2005-06-21 15:26:00 得分: 0

这样啊
我上次用JTextPane可以插入图片
但是放到JTable
显示的就是字符串
而不是图片

===================================================================
JTable是利用绘制器来显示数据的,默认时ImageIcon最终绘制为图形,
Boolean绘制为CheckBox, Object就会调用toString()最终绘制为String,

JTable怎么确定哪一列是什么类型呢?那你得重写TableModel中的getColumnClass(),
以让JTable调用,最终来确定用什么绘制器


fog628 2005-06-22
  • 打赏
  • 举报
回复
代码帖出来看看
gtlang78 2005-06-21
  • 打赏
  • 举报
回复
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;

import javax.swing.*;

public class CompoundIcon implements Icon
{
private Icon[] icons = null;

public CompoundIcon(Icon[] icons)
{
this.icons = icons;
}

public void paintIcon(Component c, Graphics g, int x, int y)
{
int hei = getIconHeight();
for (int i = 0; i < icons.length; i++) {
Icon icon = icons[i];
int w = icon.getIconWidth();
int h = icon.getIconHeight();

icon.paintIcon(c, g, x, y + (hei - h) / 2);
x += w;
}
}

public int getIconWidth()
{
int wid = 0;
for (int i = 0; i < icons.length; i++) {
wid += icons[i].getIconWidth();
}
return wid;
}

public int getIconHeight()
{
int hei = 0;
for (int i = 0; i < icons.length; i++) {
hei = Math.max(hei, icons[i].getIconHeight());
}
return hei;
}

public static void main(String[] args)
{
Icon[] icons = new Icon[] {
new ImageIcon("C:/1.png"),
new ImageIcon("C:/2.png"),
new ImageIcon("C:/3.png")
};
Icon compoundIcon = new CompoundIcon(icons);
JLabel l = new JLabel(compoundIcon);
l.setBorder(BorderFactory.createLineBorder(Color.black));
JFrame f = new JFrame();
f.getContentPane().add(l, BorderLayout.CENTER);
f.pack();
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);

}
}
www203 2005-06-21
  • 打赏
  • 举报
回复
我override了
但是用JLable只能显示一个图片对象
fog628 2005-06-21
  • 打赏
  • 举报
回复
JTable默认会把ImageIcon绘制成图像,把Boolean绘制成CheckBox

其它的就会调用toString()来显示,

你只要override TableModel中的getColumnClass(int)方法就好了,

这样JTable会调用此方法以确定怎么样绘制,
tomcatjava 2005-06-21
  • 打赏
  • 举报
回复
你可以把TableCellRenderer设置为JLabel,然后在其里面放置ImageIcon对象
www203 2005-06-21
  • 打赏
  • 举报
回复
没人关注
UP一下
www203 2005-06-21
  • 打赏
  • 举报
回复
这样啊
我上次用JTextPane可以插入图片
但是放到JTable
显示的就是字符串
而不是图片
fog628 2005-06-21
  • 打赏
  • 举报
回复
要不这样吧,你用一个JPanel,上面放几个JLabel,

再用JPanel来显示,应该可以的,
www203 2005-06-21
  • 打赏
  • 举报
回复
想去买一本书
不知道有什么好的推荐
www203 2005-06-21
  • 打赏
  • 举报
回复
楼上的可以把多个图片放到JLabel,JLabel应该可以显示到JTable吧?
晚上我回家看看去~~!
有达人知道的给个提示更好
内容概要:本文系统研究了基于CNN-SVM的卷积神经网络与支持向量机融合的数据分类预测方法,聚焦其在工业故障识别中的应用,提供了完整的Matlab代码实现。通过CNN提取输入数据的深层空间特征,再由SVM进行高精度分类,充分发挥两者优势,有效提升了故障识别的准确性、鲁棒性与泛化能力。该方法特别适用于处理电力系统、机械设备等领域的高维、非线性、强噪声监测数据,在变压器故障诊断、轴承缺陷识别等场景中具有重要应用价值。文档还整合了机器学习、深度学习、图像处理、路径规划、电力系统优化等多个前沿科研方向的技术资源,配套大量Matlab/Simulink仿真案例与Python代码,全面支持科研复现与工程实践。; 适合人群:具备一定编程基础,熟练掌握Matlab或Python语言,从事电气工程、自动化、人工智能、机械故障诊断等相关领域研究的研发人员及高校研究生; 使用场景及目标:① 实现工业设备的状态监测与多类别故障分类;② 深入理解CNN与SVM融合模型的设计原理与工程实现细节;③ 借助所提供的丰富算法案例开展科研复现、模型优化与系统仿真验证; 阅读建议:建议按照文档目录结构系统化学习,结合百度网盘提供的完整代码资源进行动手实践,重点关注CNN特征提取层与SVM分类器之间的数据接口设计与参数调优策略,同时可延伸学习文中涉及的其他智能算法及其在电力系统、信号处理等领域的交叉应用,全面提升科研创新能力。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧