【问题标题】:how to change color of rows in JTable如何更改JTable中行的颜色
【发布时间】:2012-10-17 09:11:48
【问题描述】:

我有一个 5x5 的 JTable,我想编写一个过程 setColorTable(JTable table, int Row, int Col),当调用过程 setColorTable 时,它​​将为表中的行和列设置背景颜色。每个人都可以帮助我。

非常感谢。

【问题讨论】:

  • 如果仍有问题,请至少尝试编写一些代码并发布。
  • 看看 a) swing tag wiki 中引用的教程 b) 引用 f.i. 的旧 QAs在问题的侧边栏 c) 做一些研究并尝试你的发现......

标签: java swing colors jtable renderer


【解决方案1】:

您必须创建一个扩展 Swing 组件的自定义 TableCellRenderer(如果您只想更改颜色,JLabel 可能会满足您的需求),并实现 TableCellRenderer 接口。

尝试阅读thisJavaDoc

【讨论】:

    【解决方案2】:

    您可以通过扩展 javax.swing.table.DefaultTableCellRenderer 来编写自己的类,然后根据需要覆盖以下方法。

    public class MyNewCellRenderer extends DefaultTableCellRenderer
    {
    @Override
        public Component getTableCellRendererComponent(
                JTable table, Object object,
                boolean isSelected, boolean hasFocus,
                int row, int column)
        {
            JLabel label = (JLabel) super.getTableCellRendererComponent(table, object, isSelected, hasFocus, row, column);
      label.setBackground(Color.WHITE);
        }
    }
    

    最后附上TableCellRenderer;

    jTable1 = new javax.swing.JTable()
    {
        public TableCellRenderer getCellRenderer(int row, int column)
        {
            return new MyNewCellRenderer();
        }
    };
    

    【讨论】:

    • 基本正确,只是要注意:由于 DefaultTableCellRenderer 中的一个错误,这还不够好 - 有关详细信息,请参阅 recent QA
    【解决方案3】:

    如何更改 JTable 中行的颜色

    用于着色(Font,Foregroung,Backgroung,e.i.)整行都在那里prepareRenderer

    【讨论】:

      猜你喜欢
      • 2013-05-28
      • 2013-08-29
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      相关资源
      最近更新 更多