Maison > Java > javaDidacticiel > Comment actualiser la couleur d'arrière-plan d'une ligne dans JTable ?

Comment actualiser la couleur d'arrière-plan d'une ligne dans JTable ?

Barbara Streisand
Libérer: 2024-12-14 05:40:10
original
230 Les gens l'ont consulté

How to Refresh Background Color for a Row in JTable?

Actualisation de la couleur d'arrière-plan d'une ligne dans JTable

Lorsque vous travaillez avec Swing JTables, il est possible de définir la couleur d'arrière-plan des lignes individuelles en utilisant moteurs de rendu de cellules personnalisés. En implémentant la méthode prepareRenderer dans une classe de rendu, vous pouvez manipuler la couleur d'arrière-plan en fonction de conditions spécifiques ou d'interactions utilisateur.

Considérez l'exemple suivant :

public class ColorTable extends JTable {

    private static final long serialVersionUID = 1L;
    private Map<Integer, Color> rowColors = new HashMap<>();

    @Override
    public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {

        Component c = super.prepareRenderer(renderer, row, column);
        if (!isRowSelected(row)) {
            Color color = rowColors.get(row);
            if (color != null) {
                c.setBackground(color);
            } else {
                c.setBackground(getDefaultRenderer(getColumnClass(column)).getBackground());
            }
        }
        return c;
    }

    public void setRowColor(int row, Color color) {
        rowColors.put(row, color);
    }
}
Copier après la connexion

Dans cet exemple, la ColorTable La classe étend JTable et vous permet de spécifier différentes couleurs d'arrière-plan pour les lignes en appelant la méthode setRowColor. Cela peut être utile pour indiquer visuellement l'état ou l'importance de lignes individuelles dans le tableau.

Réinitialiser les couleurs des lignes

Pour réinitialiser les couleurs d'arrière-plan de toutes les lignes par défaut couleur, vous pouvez utiliser une méthode comme la suivante :

public void resetRowColors(Color defaultColor) {
    rowColors.clear();
    setBackground(defaultColor);
}
Copier après la connexion

Exemple utilisation :

// Create a ColorTable
ColorTable table = new ColorTable();

// Add data to the table
table.setModel(new DefaultTableModel(new Object[][], new String[]{}));

// Set background color for specific rows
table.setRowColor(0, Color.GREEN);
table.setRowColor(1, Color.RED);

// Reset row colors to default
table.resetRowColors(Color.WHITE);
Copier après la connexion

En implémentant un moteur de rendu de cellules personnalisé et en fournissant des méthodes pour définir et réinitialiser les couleurs des lignes, vous pouvez facilement modifier l'apparence des lignes JTable en fonction de vos besoins spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal