Question

J'ai mon sur CellRenderer personnalisée et que vous souhaitez supprimer la bordure de la cellule.
Comment puis-je le faire? J'ai essayé setBorder mais il ne fonctionne pas.

Voici mon code renderer:

public class MyTableCellRenderer extends DefaultTableCellRenderer {

    private static final long serialVersionUID = -1195682136616306875L;

    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {
        Component c = super.getTableCellRendererComponent(table, value,
                isSelected, hasFocus, row, column);
        if (!isSelected) {
            if (row % 2 == 0 && row != 1) {
                c.setBackground(new Color(255, 255, 150));
            } else {
                c.setBackground(Color.WHITE);
            }
        } else {
            c.setBackground(new Color(255, 230, 255));
        }
        c.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
        return c;
    }
}
Était-ce utile?

La solution

Les lignes tracées entre les cellules ne font pas partie des cellules elles-mêmes. Ils sont attirés par la table. Vous pouvez les désactiver pour la table entière avec:

table.setShowGrid(false);

Pour désactiver simplement le rapport à l'horizontale ou seulement les lignes verticales:

table.setShowHorizontalLines(false);
table.setShowVerticalLines(false);

Ou, vous pouvez changer la couleur des lignes avec:

table.setGridColor(color)

Autres conseils

Je ne sais pas comment, depuis que composants Swing vos compiles de code peut avoir une bordure et la classe de composants ne dispose pas d'une méthode setBorder ().

Quand j'Override la valeur par défaut que j'utilise renderer quelque chose comme:

Class CustomRenderer extends DefaultTableCellRenderer
{
    public Component getTableCellRendererComponent(
        JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
    {
        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        this.setBorder (BorderFactory.createBevelBorder (EtchedBorder.RAISED));
        return this;
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top