gpt4 book ai didi

java - 在 JTable 中显示图像

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:41 24 4
gpt4 key购买 nike

我知道这将是一个重复的问题,但我找不到关于我的案例的答案。我已经使用数据库中的数据成功创建了我的 JTable。在我的 JTable 中,其中一列包含图像。我尝试用 getColumnClass(int column) 显示这些图像,但我不明白如何使用这种方法,也没有很好的教程我发现我可以理解...我如何显示这些我的 JTable 中的图像?

import java.sql.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class BurgerData extends JFrame
{
JTable BurgerList;

public BurgerData()
{
setSize(800,800);
setLayout(new FlowLayout());
setVisible(true);
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/image","root","");
Statement stmnt = con.createStatement();
ResultSet rs = stmnt.executeQuery("SELECT * FROM `icon`");

ResultSetMetaData rsmetadata = rs.getMetaData();
int col = rsmetadata.getColumnCount();
DefaultTableModel dtm = new DefaultTableModel();

Vector<String> col_name = new Vector<String>();
Vector<Object> row_data = new Vector<Object>();

for(int i=1;i<=col;i++)
{
col_name.addElement(rsmetadata.getColumnName(i));
}

dtm.setColumnIdentifiers(col_name);

while(rs.next())
{
row_data = new Vector<Object>();

for(int i=1;i<=col;i++)
{
row_data.addElement(rs.getObject(i));
}

dtm.addRow(row_data);
}

BurgerList = new JTable( dtm )
{
public Class getColumnClass(int column)
{
return getValueAt(0, column).getClass();
}
};

BurgerList.setModel(dtm);

add(BurgerList);

}

catch(SQLException e)
{
System.out.println("Unknown Error");
}

catch(Exception eg)
{
System.out.println("Unknown Error");
}
}

public static void main(String args[])
{
BurgerData n = new BurgerData();
}
}

最佳答案

I have already inserted Images

It is showing some string like : [B@6b4455f0] )

JTable 没有 Image 的默认渲染器,因此您看到的是 toString() 表示图片

相反,您需要使用 Image 创建一个 ImageIconJTable 然后将使用 JLabel 来渲染 Icon

例如:How to set icon in a column of JTable?

row_data.addElement(rs.getObject(i));

所以你不能把所有的对象都复制到表格模型中。您需要检查对象是否为图像,然后创建 ImageIcon 并将其添加到模型中。

另一种解决方案是为 Image 类创建自定义渲染器(然后您可以直接将对象复制到模型)。请参阅 Using Custom Renderers 上的 Swing 教程部分获取更多信息。

关于java - 在 JTable 中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41269325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com