Ciao, sono finalmente riuscito a trovare un po di tempo per tornare al progetto e ho fatto un po di modifiche; ho deciso di utilizzare un JTabbedPane e devo dire che in effetti è visivamente molto più bello di quello che avevo in mente io.
Ora però ho un nuovo piccolo problema.. Riesco a inserire una sola pagina
Ti faccio vedere il codice:
Ho provato a inserire una pagina singola e ci sono riuscito senza troppi problemi utilizzando quelle che ora sono righe commentatecodice:public class Operazione_scelta extends JPanel implements ItemListener, ActionListener { public JTabbedPane Pagina; public JFrame jfp; public Container cont_jfp; JButton Fatto= new JButton("Fatto"), Fine= new JButton("Fine"); String campi[]; String nomi_pagine[] = {"Accesso", "Assegnata", "Docente", "Laboratorio", "Locale", "Permesso", "Personale", "Postazione_L", "Postazione_V", "Prenotazione", "Risorsa", "Studente", "Tipo", "Utente", "Esci"}; /** Crea una nuova finestra composta da pagine **/ public void crea_finestra_con_pagine(String Titolo) { int alt=200, lung=800; jfp= Crea_finestra.crea_JF("Menù --> " + Titolo, lung, alt); cont_jfp = jfp.getContentPane(); //Per ogni pagina, va in Inserisci e utilizza uno Switch Case per conoscere //i campi che andranno a popolare la finestra for (int i=0; i<nomi_pagine.length; i++) { campi= Inserisci.Trova_campi(i); Aggiungi_pagina(nomi_pagine[i], campi, jfp); } // campi= Inserisci.Trova_campi(0); // Aggiungi_pagina(nomi_pagine[0], campi, jfp); } //Aggiunge una nuova pagina al frame public void Aggiungi_pagina(String Titolo, String[] campi, JFrame jfp) { JPanel panel= Crea_finestra.crea_JP(jfp); JLabel Lcampi[]= new JLabel[campi.length]; JTextField Tcampi[]= new JTextField[campi.length]; panel.setLayout(new GridLayout(campi.length+1, 2)); /** * assegno al label "i" un testo * aggiungo il label al pannello * faccio la stessa cosa con la casella di testo **/ for(int j= 0; j<campi.length; j++) { Lcampi[j] = new JLabel(campi[j]); panel.add(Lcampi[j]); Tcampi[j]= new JTextField("inserire testo..."); panel.add(Tcampi[j]); } Fatto= new JButton("Fatto"); Fine= new JButton("Esci"); panel.add(Fatto); panel.add(Fine); Fatto.addActionListener(this); Fine.addActionListener(this); Pagina= new JTabbedPane(); Pagina.addChangeListener(new TabListener()); Pagina.addTab(Titolo, panel); jfp.getContentPane().add(Pagina); jfp.pack(); panel.setVisible(true); } public void actionPerformed (ActionEvent ae) { if(ae.getSource()== Fatto) { System.out.println("Hai premuto su Fatto."); } if(ae.getSource()== Fine) { this.setVisible(false); System.exit(0); } } public void itemStateChanged(ItemEvent ae) { } }
Ma se cerco di mettere anche le altre, succede che per meno di mezzo secondo vedo diverse finestre che si aprono e poi il programma termina senza segnalare nulla.codice:// campi= Inserisci.Trova_campi(0); // Aggiungi_pagina(nomi_pagine[0], campi, jfp);
Hai idea di dove sia l'errore?

Rispondi quotando