Salve raga , volevo chiedervi:
come faccio a posizionare il testo al centro della cella, ovviamente ciò deve essere applicato a tutte le celle! grazie
Salve raga , volevo chiedervi:
come faccio a posizionare il testo al centro della cella, ovviamente ciò deve essere applicato a tutte le celle! grazie
Devi agire sui "renderer". Innanzitutto quale table model usi? (serve solo per sapere quale Class viene restituito per le colonne).Originariamente inviato da fcorsa
come faccio a posizionare il testo al centro della cella, ovviamente ciò deve essere applicato a tutte le celle!
Una soluzione semplice: istanzi un DefaultTableCellRenderer e siccome è-un JLabel, usi setHorizontalAlignment() per impostargli l'allineamento.
Il renderer lo puoi poi assegnare a colonne specifiche della tabella oppure in modo globale per la tabella associandolo ad una classe specifica con setDefaultRenderer() (la classe più generica è Object.class, se il table model ritorna questo).
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Eccol il mio table model (è una tabella a 1 colonna):
codice:class MyTableModel2 extends AbstractTableModel { private int numeroDiColonne = 1; private ArrayList lista3=null; private int count3; public MyTableModel2(ArrayList lista2,int count) { //lista delle specifiche mancanti(ArrayList di stringhe) lista3=lista2; //numero di specifiche mancanti contenuto nella lista count3=count; } //metodo che crea il nome della colonna public String getColumnName(int c){ String nome = "Artwork Mancanti"; return nome; } //metodo che ritorna il numero di colonne che è = 1 public int getColumnCount() { return numeroDiColonne; } //metodo che ritorna il numero di righe della colonna che è uguale al numero di specifiche mancanti nella lista public int getRowCount() { return count3; } //metodo che aggiunge gli elementi alle celle(cioe le stringhe) //indice colonna non viene inserito perche e a una sola colonna public Object getValueAt(int indiceRiga, int indiceColonna) { String riga =""+lista3.get(indiceRiga); return riga; } }
Va bene, se non fai l'override di getColumnClass(), la implementazione in AbstractTableModel ritorna sempre Object.class.Originariamente inviato da fcorsa
Eccol il mio table model
Quindi può certamente valere quanto ho detto prima.
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
ma a setHorizontalAlignment() che intero metto?
scusa dovevo mettere 0.
ok , funziona, ma per mettere anche l'intestazione della colonna al centro?
Non mettere un literal numerico .... la documentazione di setHorizontalAlignment parla chiaramente!! "alignment - One of the following constants defined in SwingConstants: LEFT, CENTER [....]"Originariamente inviato da fcorsa
scusa dovevo mettere 0.
Ma il testo dell'header è già centrato mi sembra ....Originariamente inviato da fcorsa
ma per mettere anche l'intestazione della colonna al centro?
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Mi sembra strano ....Originariamente inviato da fcorsa
a me no! è affiancato a sinistra!
E allora?? SwingConstants.CENTER è una costante di tipo int .... quale è il problema??Originariamente inviato da fcorsa
setHorizontalAllignement() vuole l'intero!
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet