`

JTable显示图片

阅读更多

显示的效果:

 

代码:

import javax.swing.*;
import javax.swing.filechooser.FileSystemView;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableModel;
import java.awt.*;
import java.io.File;
import java.util.Vector;

/**
 * Created with IntelliJ IDEA.
 * User: luckystar2008
 * Date: 13-6-18
 * Time: 下午1:56
 * To change this template use File | Settings | File Templates.
 */
public class IconAndTextTable extends JFrame{
    private JTable  table = null;
    String filePath = "D:\\luckystar2008\\works\\QDII\\SR\\副本投资核算系统科目(含外币)__2013_06_17.xlsx";

    public void init() {
        setSize(500,300);
        setTitle("显示图片和文本的表格");
        setLocationRelativeTo(null);
        setVisible(true);
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        initComponents();
        pack();
    }

   public void initComponents() {
       String[] columnNames = new String[]{"编号","文件"};

       Object[][] data = new Object[5][2];
       Icon icon = getFileIcon(filePath);
       data[0][0] = 10001;
       JLabel label = new JLabel(filePath.substring(filePath.lastIndexOf("\\")+1,filePath.length()));
       label.setIcon(icon);
       data[0][1] = label;
       TableModel tm = new DefaultTableModel(data,columnNames);
       table = new JTable(tm);
       table.setAutoscrolls(true);
       table.getColumnModel().getColumn(0).setPreferredWidth(50);
       table.getColumnModel().getColumn(1).setPreferredWidth(300);
       table.getColumnModel().getColumn(1).setCellRenderer(new JTableCellRender());

       JScrollPane jsp = new JScrollPane(table);
       getContentPane().add(jsp);
   }

   private Icon getFileIcon(String filePath) {
       File f = new File(filePath);
       if (f.exists()) {
           FileSystemView fsv = FileSystemView.getFileSystemView();
           Icon icon = fsv.getSystemIcon(f);
           return icon;
       }
       return null;
   }

    public static void main(String[] args) {
        IconAndTextTable iatt = new IconAndTextTable();
        iatt.init();
    }
}

class JTableCellRender extends JLabel implements TableCellRenderer {

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        return (JLabel)value;
    }
}


分享到:
评论

相关推荐

    如何在JTable的单元格里添加图片,Button组件,Label组件等等组件

    添加组件后,在组件上添加图片 1.设置Table的Model这个需要重写AbstractTableModel类, 2.设置Table的DefaultRenderer,这个根据个人需要选择将要添加到Table的cell里的 组件(JButton,JLable...)继承相应的组件...

    Swing之JTable详解

    在上述示例中,`JTable`被放置在`JScrollPane`中,这样可以确保`ColumnHeader`与`ColumnObject`都完整地显示出来。 如果直接将`JTable`添加到`JFrame`中而没有使用`JScrollPane`,`ColumnHeader`将不会显示。为了...

    图片+文字的Jlist

    描述中的“重新实现了CellRenderer,可同时显示图片和文字”表明我们要讨论的是如何用自定义的`ListCellRenderer`来创建一个可以同时显示图像和文本的`JList`。`CellRenderer` 是 Swing 中的一种设计模式,它允许...

    jtable-弄了我一整天

    JTable是Java Swing库中的一个组件,用于在应用程序中显示和编辑表格数据。它提供了丰富的功能,包括排序、选择、编辑单元格以及自定义外观。这篇文章可能涵盖了作者在理解和使用JTable过程中遇到的问题及解决方法。...

    GRID中显示通用字段图片示例

    在这个特定的例子中,“GRID中显示通用字段图片示例”是一个关于如何在数据网格(GRID)中展示存储在通用字段中的BMP图像的实践教程。这种功能常见于数据库应用程序或数据可视化工具中,它可以增强用户体验,使得...

    java图片管理器

    例如,JFrame作为主窗口,JPanel用作容器添加各种组件,如JButton(按钮)用于执行操作,JLabel用于显示图片预览,JList或JTable用于展示文件列表,让用户选择图片。 对于图片的预览,开发人员需要利用Java的图像...

    java风景日历[参考].pdf

    在本系统中,我们设计了一个使用 Java 语言实现的风景日历系统,该系统具有以下几个主要组件:日历面板、风景图片显示面板、功能按钮面板和菜单栏。下面我们将对这些组件进行详细的介绍。 日历面板 在系统的左侧,...

    基于Java swing的风景日历课程设计

    图片的选择和设置可能通过JComboBox实现,用户从下拉菜单中选择一个日期,系统将关联的风景图片加载到显示区域。 此外,项目中可能还涉及了文件I/O操作,因为要读取和保存用户的图片选择。这可能用到java.io和java....

    JAVA创建带图片的List.pdf

    例如,它使用图标的set方法来显示图片,setText方法来显示文本。此外,它还设置了工具提示以及选中状态下的背景和前景色。 为了使得整个用户界面美观,代码中还涉及到SwingUtilities.updateComponentTreeUI方法用于...

    聊天界面搭建,原生JAVA开发(图片,文字,定位)

    在Java中,我们可以使用JTextPane或JTextArea来创建文本输入框,JButton创建发送按钮,JList或JTable展示消息历史,JLabel或JScrollPane用于显示图片,而JMapViewer或Google Maps API则可实现地图功能。 2. **事件...

    java风景日历.pdf

    2. 使用鼠标左键单击选定的日期,系统界面的右侧显示风景图片。 3. 系统界面的右侧设计功能按钮,使得用户可以自选其他风景图片。 技术架构 1. 使用 Java 语言作为开发语言。 2. 使用 Java 的 Swing 库实现图形...

    java语言程序实现购物图像界面

    `ImageIcon`是`Icon`的一个子类,可以加载并显示图片。 8. **数据库连接**:为了持久化存储商品数据,可能需要与数据库进行交互。Java提供JDBC(Java Database Connectivity)API,可以用来连接和操作各种类型的...

    JFarme.zip_jfarem_jfarme添加表格_jfarme画表格_jfarme表格

    在本文中,我们将深入探讨如何使用JFrame,一个Java Swing组件,来创建具有背景...如果需要更定制化的表格显示,我们还可以使用`Graphics2D`直接在JFrame上绘制。通过这些技术,我们可以创建出丰富多样的Java GUI应用。

    java Swing电子相册管理系统 面向对象思想

    在电子相册系统中,可能使用JList或JTable来展示图片列表,JScrollPane用于在需要时滚动内容,JButton则用于触发各种操作,如打开、保存、删除图片等。 3. **事件处理**:Swing使用监听器模型处理用户交互。例如,...

    java swing写的资源管理器

    右栏则可能包含一个JTable组件,用于显示选定目录中的文件列表。JTable是表格控件,可以用来展示多列数据。开发者可以通过设置`DefaultTableModel`,并用`setModel`方法将其绑定到JTable上,然后将文件信息(如名称...

    简单学生学籍管理系统

    在描述中提到了“图片的插入”,这可能涉及到Java的IO流和图像处理库,例如使用`javax.imageio.ImageIO`来读取和显示图片。这通常用于制作系统图标或者在界面上展示学生的个人照片。 “鼠标的更改”可能指的是鼠标...

    java 电子相册

    图片的列表功能是通过JList或JTable组件实现的,这些组件允许用户以表格或列表形式查看和操作数据。开发者可能使用DefaultListModel或Vector来存储图片的路径或元数据,并将它们显示在界面上。用户可以通过滚动、...

    java GUI 参考资料

    5. **JTable**:用于显示二维数据的组件,常用于展示表格数据。JTable可以绑定到模型(如DefaultTableModel),便于动态更新数据。"JTable的详细介绍.txt"和"JTable2.txt"可能包含了如何创建、编辑和排序表格内容的...

    JtreeTable和截图软件snagit

    `JTreeTable` 是一个Java Swing组件,它将树形视图(JTree)与表格视图(JTable)结合在一起,提供了一种以树状结构展示数据,并在每个节点下显示多列详细信息的能力。这个组件在用户界面设计中特别有用,因为它允许...

    java中 Swing与IO的综合应用

    2. **数据查询**:允许用户输入搜索条件,通过BufferedReader读取文件,筛选匹配的学生信息,并在JTable中显示结果。 3. **数据修改**:选中JTable中的行进行编辑,更新后的数据通过FileWriter重新写入文件。 4. **...

Global site tag (gtag.js) - Google Analytics