Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Centrare testo nelle celle della Jtable

    Ho creato una mia JTable e vorrei che il testo delle celle sia centrato e non affiancato come al solito...come fare?Grazie.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Centrare testo nelle celle della Jtable

    Originariamente inviato da cassiosteel
    Ho creato una mia JTable e vorrei che il testo delle celle sia centrato e non affiancato come al solito...come fare?Grazie.
    La spiegazione sarebbe lunga .. cerco di farla più corta possibile. JTable fa uso dei "cell renderer", ovvero oggetti che implementano la interfaccia TableCellRenderer.
    Il table model indica quale è il tipo di oggetto per una certa colonna (getColumnClass() del table model). Ad ognuno dei tipi basilari (es. String, Integer e qualche altro) è associato per default un cell renderer (se ne possono aggiungere altre di associazioni).

    Se ci sono 3 colonne che visualizzano tipi Integer, esse avranno lo stesso identico cell renderer (intendo proprio come "identità" dell'oggetto.

    Quindi innanzitutto bisogna vedere quali tipi di dato stai gestendo e quale table model stai usando (cioè come hai creato il JTable).

    Esempio:

    JLabel label = (JLabel) table.getDefaultRenderer (Object.class);
    label.setHorizontalAlignment (SwingConstants.CENTER);

    Per il tipo Object (il caso più generale, AbstractTableModel e DefaultTableModel per default restituiscono Object.class per tutte le colonne) il cell renderer è a tutti gli effetti una banale JLabel, quindi basta impostarne l'allineamento.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.