java - 自定义渲染器中单元格内容的 JTable 对齐

标签 java swing jtable jlabel tablecellrenderer

我想将 JTable 第一列的内容与中心对齐,但我无法让它工作。如果我在没有自定义渲染器的情况下设置它,它就可以工作,但它会覆盖我尝试对行颜色进行的更改。

Eclipse 告诉我,对于 Component 类型,方法 setHorizo​​ntalAlignment 未定义,但这并没有给我带来任何警觉。我有什么想法吗?

final TableCellRenderer renderer = table_1.getDefaultRenderer(Object.class);
    table_1.setDefaultRenderer(Object.class, new TableCellRenderer()    {
      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) 
      {
        Component c = renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        c.setBackground(row % 4 == 2 || row % 4 == 3 ? new Color(230,230,230) : Color.WHITE);
        c.setHorizontalAlignment(JLabel.CENTER);
        return c;
      }
    }); 

最佳答案

声明变量 c 并将其转换为 JLabel:

JLabel c = (JLabel) renderer.getTableCellRendererComponent(...);

DefaultTableCellRenderer 的 API将向您展示该类实际上派生自 JLabel,它具有您感兴趣的方法。

关于java - 自定义渲染器中单元格内容的 JTable 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302254/

相关文章:

java - 小程序安全设置?

Java GUI 对象的动态重新定位

java - setSelectionBackGround() 未在 jTable 中设置颜色

java - 如何使用 apache POI 读取和替换书签值

java - JDK 版本不在允许的范围内

java - 违反 EJB 规范

java - 如何在 AbstractTableModel 中表示复杂的类?

java - JTable 列调整大小不起作用

java - 为 JTable 单元格着色

java - Android 检查什么 fragment 发送了 onClick 操作