Je ne veux pas définir la couleur d'arrière-plan pour toutes les cellules dans le jtable, juste celles que je choisis. Comment vais-je faire cela?Comment définir la couleur d'arrière-plan des cellules cibles dans un jtable?
0
A
Répondre
3
vous devez utiliser un custom renderer
2
Vous trouverez peut-être le concept présenté dans Table Row Renderering plus facile à mettre en œuvre. Peut-être garder un ensemble de points (représentant une cellule que vous voulez colorier). Ou peut-être même une carte des points et des couleurs.
0
Vous devrez créer un CellRenderer personnalisé et l'appeler dans la méthode getCellRenderer (int col, int rol) de votre JTable personnalisée. Pour un bon exemple, voir http://self-reference.com/tech/swing.html.
1
final JTable table = new JTable(tableModel);
table.getTableHeader().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent mouseEvent) {
int selectedHeader = table.convertColumnIndexToModel(table
.columnAtPoint(mouseEvent.getPoint()));
table.getColumn(table.getColumnName(selectedHeader))
.setCellRenderer(new DefaultTableCellRenderer() {
public void setBackground(Color c) {
super.setBackground(Color.blue);
}
});
};
});
Y a-t-il un moyen plus rapide de le faire? – vamsi
malheureusement pas. Le moteur de rendu est ce qui gère la peinture de chaque cellule de table individuelle – objects
theres un exemple et une discussion ici http://www.jguru.com/faq/view.jsp?EID=53764 – objects