swing jTable 自定义单元格

该博客介绍了如何在Java Swing环境中使用jTable组件自定义单元格的数据类型,包括颜色和图标。通过创建自定义的表格模型、绘制器和编辑器,实现了颜色和图标的选择与编辑功能,提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
//主类
@SuppressWarnings("unchecked")
public class TryJTable extends JFrame
{
    private static final long serialVersionUID = 1L;
    //创建自定义表格模型对象
    MyTableModel dtm=new MyTableModel();
    //创建JTable对象
    JTable jt=new JTable(dtm);
    //将JTable封装进滚动窗格
    JScrollPane jsp=new JScrollPane(jt);   
    //自定义的表格模型
    private class MyTableModel extends AbstractTableModel
    {
       
        private static final long serialVersionUID = 1L;
        //创建表示各个列类型的类型数组
        Class[] typeArray=
              {Object.class,Double.class,Boolean.class,Icon.class,Color.class};
        //创建列标题字符串数组
        String[] head={"Object","Number","Boolean","Icon","Color"};
        //创建初始表格数据
        Object[][] data={ {"这里是字符串1",new Integer(20),new Boolean(true),
                            new ImageIcon("D:/p1.gif "),Color.black},
                        {"这里是字符串2",new Double(12.34),new Boolean(false),
                        new ImageIcon("D:/p2.gif "),Color.darkGray},
                        {"这里是字符串3",new Integer(125),new Boolean(true),
                        new ImageIcon("D:/p3.gif"),Color.white}};
        //重写getColumnCount方法
        public int getColumnCount()
        {
            return head.length;
        }
        //重写getRowCount方法   
        public int getRowCount()
        {
            return data.length;
        }
        //重写getColumnName方法
        public String getColumnName(int col)
        {
            return head[col];
        }
        //重写getValueAt方法
        public Object getValueAt(int r,int c)
        {
            return data[r][c];
        }
        //重写getColumnClass方法
        public Class getColumnClass(int c)
        {
    &nb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值