我想在Jtable Java中为Cells着色吗?

阿努瓦尔·卢阿迪吉(AnoarLouardighi)

我想在Jtable Java中为Cells着色吗?在图片中是这样的:

http://i.stack.imgur.com/yuzZR.png

有人可以帮我谢谢!

我上次尝试的代码

import javax.swing.*;

import javax.swing.table.AbstractTableModel;

import javax.swing.table.DefaultTableCellRenderer;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Component;

public class Main
{
        /**
         * @param args
         */
        public static void main(String[] args)
        {
                JFrame frame = new JFrame();
                frame.add(new JComboxTable(), BorderLayout.NORTH);
                frame.setVisible(true);
                frame.setSize(300, 300);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
}

class JComboxTable extends JTable
{

        public static JComboBox cb;

        public JComboxTable()
        {
                TableModel tree = new TableModel();
                TableRenderer render = new TableRenderer();
                setModel(tree);
                setDefaultRenderer(Object.class, render);
                tree.fireTableDataChanged();
        }

}

class TableModel extends AbstractTableModel
{

        public int getColumnCount()
        {
                return 2;
        }

        public int getRowCount()
        {
                return 5;
        }

        @Override
        public Class<?> getColumnClass(int columnIndex)
        {
                if (columnIndex == 0)
                {
                        return String.class;
                }
                else
                {
                        return Color.class;
                }
        }

        public Object getValueAt(int rowIndex, int columnIndex)
        {
                if (columnIndex == 0)
                {
                        return "Salut" + rowIndex;
                }
                else
                {
                        if( ( rowIndex % 2 ) == 0 )
                        {
                                return  Color.RED ;
                        }else
                        {
                                return  Color.BLUE ;
                        }
                }
        }

}

class TableRenderer extends DefaultTableCellRenderer
{

        public Component getTableCellRendererComponent(JTable table, Object value,
                        boolean isSelected, boolean hasFocus, int row, int column)
        {
                if (value instanceof Color)
                {
                        setBackground((Color) value);
                        setText("");
                }
                else
                {
                        setBackground( (Color)table.getModel().getValueAt(row, 1) );
                        setText(  (String)value );
                }

                return this;
        }

}
}
卡米克尔

使用自定义渲染器。

阅读Swing教程中有关使用自定义渲染器的部分,以获取一个工作示例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我想在java中永久化的东西

来自分类Dev

我想在Ubuntu 16.04中阅读我的* .bok吗?

来自分类Dev

我想在Ubuntu上做分区吗?

来自分类Dev

我想在Swift中实现ASMediasFocusDelegate

来自分类Dev

我想在QTableWidget中隐藏行号列

来自分类Dev

我想在SQL脚本中包含If语句

来自分类Dev

我想在Laravel中显示主页

来自分类Dev

我想在Android中扩展SharedPreferences类

来自分类Dev

我想在滑块中显示图像

来自分类Dev

我想在Excel中创建范围

来自分类Dev

我想在Swift中实现ASMediasFocusDelegate

来自分类Dev

我想在js中制作自己的dom

来自分类Dev

我想在日历中添加日期名称

来自分类Dev

我想在reactJs中显示JSON结果

来自分类Dev

我想在 python 中替换而不重叠

来自分类Dev

我想在表中合并相同的值

来自分类Dev

我想在 android 中创建这个 UI

来自分类Dev

想在我的网页中显示编程代码?

来自分类Dev

我想在 Android 中阅读 Gmail 邮件

来自分类Dev

我想在 Javascript 中对 JSON 进行排序

来自分类Dev

我想在 SQL 中创建系列数据

来自分类Dev

我想在 JavaScript 中创建星级。

来自分类Dev

我想在 dequeueReusableCell 中获取 firestore 数据

来自分类Dev

我想在excel中显示webtable数据

来自分类Dev

我想在代码中多次调用函数吗?

来自分类Dev

我想在Qt中获取我的旋转框的名称

来自分类Dev

我想在我的导航中添加一些类

来自分类Dev

我想在我的应用中设置本地通知

来自分类Dev

我想在Qt中获取我的旋转框的名称