Announcement

Collapse
No announcement yet.

Snippet: JTable -> TableCellRenderer

Collapse
This is a sticky topic.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Snippet: JTable -> TableCellRenderer

    Beispiel für einen Renderer für Textausrichtung, Farben, Border und Font

    Code:
    public class AlignTableCellRenderer extends DefaultTableCellRenderer.UIResource
    {
    private DefaultTableCellRenderer renderer;
    private int horizontalAlignment=SwingConstants.CENTER;
    private Color foregroundColor=null;
    private Color backgroundColor=null;
    private Border border=null;
    private int fontstyle=Font.PLAIN;
    
    public AlignTableCellRenderer(JTable table)
    {
    renderer=(DefaultTableCellRenderer)table.getTableH eader().getDefaultRenderer();
    }
    
    public AlignTableCellRenderer(JTable table,int horizontalAlignment)
    {
    this(table);
    this.horizontalAlignment=horizontalAlignment;
    }
    
    public AlignTableCellRenderer(JTable table,int horizontalAlignment,Color foregroundColor)
    {
    this(table);
    this.horizontalAlignment=horizontalAlignment;
    this.foregroundColor=foregroundColor;
    }
    
    public AlignTableCellRenderer(JTable table,int horizontalAlignment,int fontstyle,Color foregroundColor)
    {
    this(table);
    this.horizontalAlignment=horizontalAlignment;
    this.foregroundColor=foregroundColor;
    this.fontstyle=fontstyle;
    }
    
    public AlignTableCellRenderer(JTable table,int horizontalAlignment,Border border)
    {
    this(table);
    this.horizontalAlignment=horizontalAlignment;
    this.border=border;
    }
    
    public AlignTableCellRenderer(JTable table,Border border)
    {
    this(table);
    this.border=border;
    }
    
    public void setForegroundColor(Color foregroundColor)
    {
    this.foregroundColor=foregroundColor;
    }
    
    public void setBackgroundColor(Color backgroundColor)
    {
    this.backgroundColor=backgroundColor;
    }
    
    public void setFontstyle(int fontstyle)
    {
    this.fontstyle=fontstyle;
    }
    
    @Override
    public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column)
    {
    JLabel label=(JLabel)renderer.getTableCellRendererCompone nt(table,value,isSelected,hasFocus,row,column);
    label.setHorizontalAlignment(horizontalAlignment);
    label.setFont(label.getFont().deriveFont(fontstyle ));
    if(foregroundColor!=null)
    {
    label.setForeground(foregroundColor);
    }
    if(backgroundColor!=null)
    {
    label.setBackground(backgroundColor);
    }
    if(border!=null)
    {
    label.setBorder(border);
    }
    return label;
    }
    
    }
    Zuletzt editiert von Christian Marquardt; 02.05.2023, 14:55.
    Christian
Working...
X