Ho problemi a modificare dinamicamente l'altezza delle mie righe, c'è un metodo che devo sovraccaricare?JTable modifica dinamicamente l'altezza della riga
--Edit--
Ci scusiamo per il breve post era la mia prima .... I miei problemi era veramente a che fare con il cambiamento l'altezza della riga a seconda del contenuto. Quindi quello che ho fatto fino ad ora è una classe interiore che implementa TabelCellRenderer.
Questo è quello che sto facendo in questo momento per i miei calcoli di altezza della riga.
private static class TextAreaRenderer extends JTextPane implements TableCellRenderer
{
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected,
boolean hasFocus, int row,
int column)
{
/* Setup Code here */
this.setText(((String)value).getEntityName());
int height = new Double(this.getPreferredSize().getHeight()).intValue();
if (table.getRowHeight(row) < height)
table.setRowHeight(row, height);
/* some more code */
return this;
}
}
Questo sarebbe il modo corretto di fare questo? Grazie.
No, il renderer non deve modificare l'altezza della riga della tabella. Questo dovrebbe essere fatto quando i dati vengono aggiunti al modello. Ciò significa che dovresti eseguire il calcolo quando crei la tabella. Quindi dovresti utilizzare un TableModelListener per ascoltare le modifiche ai dati e quindi ripetere il calcolo. – camickr
Grazie, è una soluzione molto migliore in quanto crea una separazione tra i dati e i livelli di visualizzazione. Inoltre, dovrei solo avere il codice in un posto e non preoccuparti di creare codice di aggiornamento ogni volta che cambio il layout della tabella. – kohlerfc
@ camickr, i dati non hanno nulla a che fare con le visualizzazioni. Come si calcola la riga di un'altezza quando si aggiungono dati a un modello? Il modello e i dati devono essere indipendenti dalla vista. ** È ** in effetti la parte vista del progetto che dovrebbe fare calcoli su come adattare alcuni dati nel widget-qualunque che verrà visualizzato. Non sto dicendo che dovrebbe essere il renderer, ma di sicuro il modello non dovrebbe. – Sebastian