Salve a tutti! Mi rivolgo a questo forum per un problema che secondo me dovrebbe essere semplice ma che da 4 giorni mi fa impazzire senza risolverlo. Sto sviluppando un piccolo gestionale JAVA la cui GUI è fatta da Swing con un semplice layout data dalla libreria Oracle tablelyout.jar (
http://www.oracle.com/technetwork/java/tablelayout-141489.html). In parole povere questa semplice libreria mi fa dividere il JPanel principale in una tabella di righe e colonne indicate in una matrice di tipo double. Per ogni oggetto che inserisco gli indico semplicemente la sua posizione con una sitringa che indica colonna e riga, ad esempio "2,1".
Il problema che ho diviso il mio JPanel principale (body) in 12 righe ed ognuna ha 8 colonnea ed in ogni cella ho inserito delle funzionalità con JButtons, JLabels o JTextAreas...adesso vorrei aggiungere nuove funzionalità e quindi nuove righe ma siccome già così il mio programma riempiva la schermata del monitor del pc ho pensato inserire una JScrollPane a lato in modo da visualizzare ed usare tutto quello che mettevo in più, quindi dalla 13° riga in giù. Il problema è che tutta questa nuova roba non viene visualizzata. Questo è lo scheletro della mia classe principale dove viene formata la GUI:
public class Economato {
public static void main(String argv[]) {
final JFrame jframe = new JFrame("Protocollo UTL");
jframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
jframe.setSize(1200, 600);
JPanel body = new JPanel();
double size[][] = {
{ 0.05, 0.25, 0.25, 0.05, 0.25, 0.005, 0.10, 0.10 }, /* colonne */
{ 0.25, 0.05, 0.15, 0.15, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05,
0.05, 0.05 } }; /* righe */
body.setLayout(new TableLayout(size));
/* aggiungo vari oggetti */
body.add(new JLabel("DATA odierna"), "1,1");
body.add(new JLabel("OGGETTO"), "1,2");
/* tutti gli oggetti visualizzati ed i loro listeners sono inseriti qui */
/* ed infine aggiungo il JScrollPane e lo applico ai jframe */
JScrollPane scrollPane = new JScrollPane(body,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jframe.add(scrollPane);
jframe.setVisible(true);
}
}
immagine della GUI:
sorgente:
Quindi insomma qualsiasi cosa io aggiunga dopo l'ultima riga che vedete nell'immagine, quesdta roba non viene visualizzata, anche se c'è il JScrollPane per scrollare giù la pagina. Cosa può essere? Non riesco davvero a capire dove sto sbagliando. Un grazie a tutti quelli che risponderanno!