PDA

View Full Version : [Java] Aggiornare il render di una tabella...


Fire Fox II
27-06-2011, 15:50
Salve raga

ho questo problema... Su una tabella costruita tramite valori presi da un database, dovrei evidenziare le righe tramite la scelta di una combobox...

La tabella ha di default questo render a righe alternate


public class AlternateTableCellRender extends DefaultTableCellRenderer {

private Vector list;

public AlternateTableCellRender(Vector x) {
list = x;
}

public AlternateTableCellRender() {
list = new Vector();
}

@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int col) {

JLabel label = new JLabel("");
label.setFont(new Font("Verdana", Font.PLAIN, 10));
label.setText(value.toString());
label.setOpaque(true);
label.setForeground(Color.black);

if (row % 2 == 0) {
label.setBackground(Color.white);
} else {
label.setBackground(new Color(235, 236, 255));
}

for (int i=0; i<list.size();i++){
if (list.elementAt(i).equals(row)){
label.setBackground(Color.red);
}
}

if (isSelected) {
label.setBackground(Color.green);
}

return label;
}
}


Quindi prima della query sql (a tabella vuota) tramite

tabella.setDefaultRenderer(Object.class, new AlternateTableCellRender());

Tutto ok... Successivamente in relazione al selezionamento di una combobox

tabella.setDefaultRenderer(Object.class, new AlternateTableCellRender(list));


non sortisce gli effetti desiderati...

Presumo il problema sia effetturare un refresh alla tabella...

Fire Fox II
28-06-2011, 11:27
UP