tonio123
12-11-2011, 17:09
Salve a tutti vi chiedo aiuto con questo problema perchè non riesco proprio a venirne a capo:
Allora io ho una finestra ProgressFrame composta semplicemente da una JLabel e da una JProgressBar con il seguente codice:
public ProgressFrame(int a){
super("Inserimento in corso: ");
initGUI(a);
}
public void setBarra(int val){
barra.setValue(val);
this.repaint();
}
private void initGUI(int a) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException
| UnsupportedLookAndFeelException e) {
System.out.println("bo");
}
this.setSize(400,100);
JPanel pannello=new JPanel();
pannello.add(new JLabel("Film trovati: "+a+" -->"));
barra=new JProgressBar();
pannello.add(barra);
this.getContentPane().add(pannello);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
Se creo questo frame dal main non ho alcun problema, si vede tutto quanto e la barra si aggiorna perfettamente con setBarra.
Il problema è che io voglio istanziare questa classe da un metodo di un altro oggetto con il seguente codice:
public void addMovie(File dir) throws IOException, MovieNotFound {
int i=1;
if(dir.isDirectory()){
File[] elenco=dir.listFiles(new FileFilter());
ProgressFrame progress=new ProgressFrame(elenco.length);
for(File x: elenco){
.... //faccio varie azioni
progress.setBarra(i);
i++; }
progress.dispose()
e in teoria dovrebbe andare, ma il risultato è che si apre il frame, ma senza contenuto, nel senso che si vede solo un pannello bianco...
Io non so proprio dove sbattere la testa, anche perché come già detto dal main funziona perfettamente.
C'è qualcuno che mi sa dire dove sta il problema??
Allora io ho una finestra ProgressFrame composta semplicemente da una JLabel e da una JProgressBar con il seguente codice:
public ProgressFrame(int a){
super("Inserimento in corso: ");
initGUI(a);
}
public void setBarra(int val){
barra.setValue(val);
this.repaint();
}
private void initGUI(int a) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException
| UnsupportedLookAndFeelException e) {
System.out.println("bo");
}
this.setSize(400,100);
JPanel pannello=new JPanel();
pannello.add(new JLabel("Film trovati: "+a+" -->"));
barra=new JProgressBar();
pannello.add(barra);
this.getContentPane().add(pannello);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
Se creo questo frame dal main non ho alcun problema, si vede tutto quanto e la barra si aggiorna perfettamente con setBarra.
Il problema è che io voglio istanziare questa classe da un metodo di un altro oggetto con il seguente codice:
public void addMovie(File dir) throws IOException, MovieNotFound {
int i=1;
if(dir.isDirectory()){
File[] elenco=dir.listFiles(new FileFilter());
ProgressFrame progress=new ProgressFrame(elenco.length);
for(File x: elenco){
.... //faccio varie azioni
progress.setBarra(i);
i++; }
progress.dispose()
e in teoria dovrebbe andare, ma il risultato è che si apre il frame, ma senza contenuto, nel senso che si vede solo un pannello bianco...
Io non so proprio dove sbattere la testa, anche perché come già detto dal main funziona perfettamente.
C'è qualcuno che mi sa dire dove sta il problema??