19/06/11 14:15
gradasso
Salve a tutti, ho un problema e cercherò di essere il più preciso possibile.
Sto realizzando un client di posta elettronica con JAVA e per far ciò mi sono attrezzato di vari utili strumenti tutti freeware e molto potenti, elenchiamoli:
- Eclipse Elios
- Google WindowBuilder pro (plug-in per Eclipse che crea GUI), a mano era troppo laborioso
- JavaMail
- JAF (JavaBeans Activation Framework)
-ecc...
Il mio problema momentaneamente è molto semplice, se in futuro avessi altri problemi con i progetto lo descriverei qui... allora, io ho costruito la GUI, ho inserito uno splitpanel dove a sinistra ho inserito una JTable dove andrà la lista delle mail ricevute, a destra una text area dove sarà contenuto il testo della mail.
Il problema è che non riesco a visualizzare nella mia tabella i titoli delle colonne. Ho difatti 3 colonne: "Da", "Oggetto", "Data ricezione".
Ho provato a settare parecchie volte sia il tablemodel che altri parametri, ma niente.
Allego ora una porzione di codice.
Porzione di codice dove dichiaro lo splitpanel e la tabella
classe per settare la tabella
il mio tableModel
ed infine la formattazione della tabella
Posto anche l'immagine relativa che fa vedere che non si vede il titolo.
PS: ho provato a riempire la prima riga con 1,2 e 3 (un numero per ogni colonna) , i numeri si vedono ovviamente, ma dei titoli niente...
Grazie mille per aver letto, a presto
Sto realizzando un client di posta elettronica con JAVA e per far ciò mi sono attrezzato di vari utili strumenti tutti freeware e molto potenti, elenchiamoli:
- Eclipse Elios
- Google WindowBuilder pro (plug-in per Eclipse che crea GUI), a mano era troppo laborioso
- JavaMail
- JAF (JavaBeans Activation Framework)
-ecc...
Il mio problema momentaneamente è molto semplice, se in futuro avessi altri problemi con i progetto lo descriverei qui... allora, io ho costruito la GUI, ho inserito uno splitpanel dove a sinistra ho inserito una JTable dove andrà la lista delle mail ricevute, a destra una text area dove sarà contenuto il testo della mail.
Il problema è che non riesco a visualizzare nella mia tabella i titoli delle colonne. Ho difatti 3 colonne: "Da", "Oggetto", "Data ricezione".
Ho provato a settare parecchie volte sia il tablemodel che altri parametri, ma niente.
Allego ora una porzione di codice.
Porzione di codice dove dichiaro lo splitpanel e la tabella
JSplitPane splitPane = new JSplitPane(); splitPane.setDividerLocation(frame.getWidth()/2); frame.getContentPane().add(splitPane, BorderLayout.CENTER); //Setting della Tabella String testaTabella [] = {"Da", "Oggetto", "Data di ricezione"}; String nullTab [][] = {}; ModelloListaEmail corpoTab = new ModelloListaEmail(nullTab, testaTabella); table = new JTable(corpoTab); splitPane.setLeftComponent(table); JScrollPane scrollPane = new JScrollPane(); splitPane.setRightComponent(scrollPane); JTextArea textArea = new JTextArea(); scrollPane.setViewportView(textArea); SettaTabella();
classe per settare la tabella
public void SettaTabella() { TableColumn colonnaTab; JTableHeader headerTab; colonnaTab = table.getColumnModel().getColumn(0); colonnaTab.setCellRenderer(new FormattazioneTabella()); colonnaTab = table.getColumnModel().getColumn(1); colonnaTab.setCellRenderer(new FormattazioneTabella()); colonnaTab = table.getColumnModel().getColumn(2); colonnaTab.setCellRenderer(new FormattazioneTabella()); headerTab = table.getTableHeader(); headerTab.setBackground(Color.lightGray); table.setBorder(null); table.setShowGrid(false); table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); }
il mio tableModel
import javax.swing.table.DefaultTableModel; import javax.mail.*; public class ModelloListaEmail extends DefaultTableModel { /** * */ private static final long serialVersionUID = 1; ModelloListaEmail(String[][] righe, String[] colonne) { super(righe, colonne); } @Override public boolean isCellEditable(int row, int col) { //return (col != 0); return false; } }
ed infine la formattazione della tabella
import java.awt.*; import javax.swing.*; import javax.swing.table.*; public class FormattazioneTabella extends DefaultTableCellRenderer { /** * */ private static final long serialVersionUID = 1; Font font_1 = new Font("", Font.PLAIN, 12); public Color ColoreRigaSelezionata = new Color(234,227,227); public Component getTableCellRendererComponent (JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int column) { Component cell = super.getTableCellRendererComponent(table, obj, isSelected, hasFocus, row, column); if (isSelected) { cell.setBackground(ColoreRigaSelezionata); cell.setFocusable(false); } else { /* if (row % 2 == 0) { cell.setBackground(Color.orange); } else { cell.setBackground(new Color(255,228,196)); } */ } switch (column) { case 0: setHorizontalAlignment( LEFT ); setFont(font_1); break; case 1: setHorizontalAlignment( LEFT ); setFont(font_1); break; case 2: setHorizontalAlignment( CENTER ); setFont(font_1); break; } return cell; } }
Posto anche l'immagine relativa che fa vedere che non si vede il titolo.
PS: ho provato a riempire la prima riga con 1,2 e 3 (un numero per ogni colonna) , i numeri si vedono ovviamente, ma dei titoli niente...
Grazie mille per aver letto, a presto
aaa