2021年7月26日星期一

Swing的JTable表格列中插入图片

1.实现效果

给swing的JTable实现如下效果,JTable的列表中插入图片

image-20210725233436734

2.实现步骤

这里准备了三张方式的图片:网络图片、工程类目录图片、本地磁盘图片

工程目录如下:

image-20210725233944024

关键步骤有两个:

  • 创建Icon对象
  • 重写DefaultTableModel类的getColumnClass方法

3.完整代码

package com.qy;import java.awt.BorderLayout;import java.net.MalformedURLException;import java.net.URL;import java.util.Enumeration;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.border.EmptyBorder;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import javax.swing.table.JTableHeader;import javax.swing.table.TableColumn;/** * @Author 贺刘芳* @Time 2021年7月25日 下午11:21:33 * @Version 1.0* <p>Description:</p>*/public class JTableImg extends JFrame {	private JPanel contentPane;	private JTable table;	public static void main(String[] args) {		JTableImg frame = new JTableImg();		frame.setVisible(true);	}	public JTableImg() {		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭程序退出		setSize(566, 429);//设置窗口大小		setLocationRelativeTo(null);//设置窗口居中		contentPane = new JPanel();		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));		setContentPane(contentPane);		contentPane.setLayout(null);//设置布局方式为绝对布局				JPanel panel = new JPanel();		panel.setBounds(10, 10, 530, 349);		contentPane.add(panel);		panel.setLayout(new BorderLayout(0, 0));  //核心步骤1:创建Icon对象		//相对于类路径读取图片		Icon icon1 = new ImageIcon(this.getClass().getResource("/images/33.jpg"));		//绝对路径读取图片		Icon icon2 = new ImageIcon("D:/images/22.jpg");		//网络路径读取图片		Icon icon3 = null;		try {			icon3 = new ImageIcon(new URL("https://avatar.csdnimg.cn/3/F/F/3_toto1297488504_1548903051.jpg"));		} catch (MalformedURLException e) {			e.printStackTrace();		}		table = new JTable();		String[] columnNames = new String[] {"头像", "姓名"};		//将图片Icon对象放入表格数据数组		Object[][] data = new Object[][] {			 {icon1, "Text 1"},    {icon2, "Text 2"},    {icon3, "Text 3"}		};		//将表格数据数组放入表格模型,并重写getColumnClass方法		table.setModel(new DefaultTableModel(data,columnNames){			@Override //核心步骤2:重写getColumnClass方法			public Class<?> getColumnClass(int columnIndex) {				return getValueAt(0, columnIndex).getClass();			}		});		//设置每一列的列宽		//table.getColumn(columnNames[0]).setPreferredWidth(59);		table.setRowHeight(0, 80);	 table.setRowHeight(1, 80);	 table.setRowHeight(2, 80);	 table.setRowHeight(3, 80);	 //fitTableColumns(table); //非必须,设置列宽随表格内容自动调整		JScrollPane jsp = new JScrollPane(table);		jsp.setSize(530, 349);		panel.add(jsp);	}		//设置列宽随表格内容自动调整 参考博客:https://blog.csdn.net/tototuzuoquan/article/details/8982618	public void fitTableColumns(JTable ......

原文转载:http://www.shaoqun.com/a/895362.html

跨境电商:https://www.ikjzd.com/

环球b2b:https://www.ikjzd.com/w/1762

jpgoodbuy:https://www.ikjzd.com/w/1553

亚马逊全球开店:https://www.ikjzd.com/w/1299


1.实现效果给swing的JTable实现如下效果,JTable的列表中插入图片2.实现步骤这里准备了三张方式的图片:网络图片、工程类目录图片、本地磁盘图片工程目录如下:关键步骤有两个:创建Icon对象重写DefaultTableModel类的getColumnClass方法3.完整代码packagecom.qy;importjava.awt.BorderLayout;importjava.net
西方国家有哪些传统节日?:http://www.30bags.com/a/430854.html
西方人,你为什么不唱K?:http://www.30bags.com/a/245400.html
西贡、会安体验越南style :http://www.30bags.com/a/414066.html
西关小姐 - :http://www.30bags.com/a/410171.html
领导从背后捏住我的奶 握住她的双乳肆意揉弄:http://lady.shaoqun.com/a/247904.html
一位少妇口述她换偶经历:http://lady.shaoqun.com/m/a/83932.html
老师慢慢张开腿坐上去 轻轻的顶开老师的两瓣:http://www.30bags.com/m/a/249729.html
玉米地里的大嫂让我收不住欲望(4/4):http://www.30bags.com/m/a/249639.html
外出工作的年轻女性想用"夫妻生活"做什么?听听这些人的声音!:http://lady.shaoqun.com/a/431470.html
小说:不,我要去洗澡:http://lady.shaoqun.com/a/431471.html
女人"性冷淡"。吃什么可以帮助他们?提高性功能?:http://lady.shaoqun.com/a/431472.html
女人希望被你的睡眠所暗示。女人明白你有趣的潜台词吗:http://lady.shaoqun.com/a/431473.html

没有评论:

发表评论