L'effetto lampeggiante in una JTable non ti è fornito da nessuna funzione predefinita (almeno che io sappia) pertanto lo devi creare tu. Una soluzione semplice è quella di utilizzare una matrice "parallela" di booleani in cui riporti quale cella colorare... Forse uno snippet è più comprensibile di tante parole:
A questo punto ti gestisci il vettore di booleani, alzando o abbassando l'elemento che vuoi colorare. Solita precauzione: se la tua interfaccia grafica fa anche altre cose sarebbe auspicabile gestire questo flusso in un altro thread per evitare che l'esecuzione continua della getTableCellRendererComponent possa freezarti l'interfaccia.codice:Object rowData[][] = new Object[nrRow][nrCol]; boolean redColoring[][] = new boolean[nrRow][nrCol]; String columnNames[] = new String[nrCol]; JTable table = new JTable(rowData, columnNames); table.setDefaultRenderer(Object.class, new TableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){ JLabel label = new JLabel(value.toString()); label.setOpaque(true); if (redColoring[row][column]) { label.setBackground(Color.RED); } return label; } });

Rispondi quotando