Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    [Java] Creare celle autoresize per JTable

    Ciao a tutti.
    Devo costruire una JTable con delle celle che si autodimensionano in base ai dati che ci vado ad inserire dinamicamente. Questi dati possono essere suddivisi anche su più righe (in una cella, quindi, è possibile che il dato venga visualizzato su due o più righe) quindi la dimensione verticale della cella nella riga contenente quel dato deve aumentare di dimensione.

    Come posso procedere?


    Grazie a tutti


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ciao Lele. La tabella non si ridimensiona da sola? In caso, hai provato a fare un validate() sul panel che la contiene? Se hai già provato e non ha sortito effetto, il topic si fa interessante.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Originariamente inviato da Andrea1979
    ciao Lele. La tabella non si ridimensiona da sola? In caso, hai provato a fare un validate() sul panel che la contiene? Se hai già provato e non ha sortito effetto, il topic si fa interessante.
    Si anche a me risulta che si ridimensioni da sola...
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    spulciando il forum della sun è saltato fuori questo

    codice:
    class TableRenderer extends JTextArea implements TableCellRenderer{
          public TableRenderer(){
            setLineWrap(true);
            setWrapStyleWord(true);
            setOpaque(true);
          }
                                                                                                                                                                
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean
    hasFocus, int row, int column)
         {
          if (isSelected) {
            setForeground(tblOt.getSelectionForeground());
            setBackground(tblOt.getSelectionBackground());
          } else {
            setForeground(tblOt.getForeground());
                                                                    }
          setFont(tblOt.getFont());
          if (hasFocus) {
            setBorder( UIManager.getBorder("Table.focusCellHighlightBorder") );
              if (tblOt.isCellEditable(row, column)) {
                setForeground( UIManager.getColor("Table.focusCellForeground") );
                setBackground( UIManager.getColor("Table.focusCellBackground") );
              }
              } else {
            setBorder(new EmptyBorder(1, 2, 1, 2));
          }
          setText((value == null) ? "" : value.toString());
          return this;
         }
       }
    ossia il linewrap. qui il tipo usa una textarea, per cui il discorso è fattibile con un semplice setLineWrap... se usi labels o simili, ahi, penso che dovrai determinare la larghezza delle stringhe (dal font e numero di caratteri) e giocare un po' con quelle...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Ok, grazie mille... vedrò che ne esce. Purtroppo non ho qui l'applicazione (che non è mia) che da quei problemi!


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.