gpt4 book ai didi

java - JTable 单元格中的图像显示

转载 作者:行者123 更新时间:2023-12-04 05:58:34 25 4
gpt4 key购买 nike

我使用以下程序使用 java 类创建 JTable。如果我从选项 Pane 中获取 warnIcon,infoIcon 的图像,它会正确显示。但是,如果我从系统添加图像,它不会显示在表格中。显示空白而不是我的图像。如何从该表中的文件(例如 A.jpg)绘制图像?

package pointer;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.*;
import javax.swing.plaf.OptionPaneUI;
import javax.swing.table.*;
import sun.swing.ImageIconUIResource;

public class TableIcon1 extends JFrame {
private JTable table;
private int pHeight = 60;
public TableIcon1() {
ImageIcon testIcon = new ImageIcon("A.jpg");
// ImageIcon errorIcon = (ImageIcon) UIManager.getIcon("OptionPane.errorIcon");
ImageIcon infoIcon = (ImageIcon) UIManager.getIcon("OptionPane.informationIcon");
ImageIcon warnIcon = (ImageIcon) UIManager.getIcon("OptionPane.warningIcon");
String[] columnNames = {"Picture", "Description"};
Object[][] data = {{testIcon , "About"}, {infoIcon, "Add"}, {warnIcon, "Copy"},};
DefaultTableModel model = new DefaultTableModel(data, columnNames);
table = new JTable(model) {
@Override
public Class getColumnClass(int column) {
return getValueAt(2, column).getClass();
}
};
table.setRowHeight(pHeight);
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane, BorderLayout.CENTER);
}

public static void main(String[] args) {
TableIcon1 frame = new TableIcon1();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setLocation(150, 150);
frame.pack();
frame.setVisible(true);
}
}

最佳答案

ImageIcon testIcon = new ImageIcon("A.jpg"); is road to nowhere

图标很常见,它永远不会为错误的路径或空值返回任何异常,您必须对此进行测试

最好的方法是创建一个名为 icons 的新文件夹在您的 Java project然后复制您的 A.jpg Icon
那么你只能打电话
URL url = ClassLoader.getSystemClassLoader().getResource("icons/A.jpg");
ImageIcon testIcon = new ImageIcon(url);

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

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