|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Nov 2010
Messaggi: 3
|
[JAVA] Finestra con progressbar, thread
Non vi posto ancora codice ma vorrei farvi capire quello che vorrei realizzare:
La finestra principale (shell SWT) apre una dialog che all'attivazione di un pulsante fa partire dei processi che generano un file PDF e successivamente si apre il file PDF stesso. Ora ques'ultima procedura ci mette un po', vorrei che nel mentre che si sta generando il file PDF si apra una dialog con progress bar (magari anche indeterminata). Ho provato ad implementarla ma non si nota alcuno scorrimento della barra. Ho provato a mettere questo dialog con progress bar in una classe esterna che implementa i thread e a farla partire cosi ma sembra che prima il programma esegua il codice del programma principale e infine esegua il thread. Spero di essermi spiegato bene! Se serve posto anche codice ma il programma è immenso, cmq se necessario posto le parti interessate. Grazie per l'aiuto! |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Comunque se ti servono informazioni circa il threading model di SWT (che non conosco bene, sono un utente di Swing) qui trovi due link utili (in particolare il secondo): - Threading issues - SWT: Respond to Long Running Tasks
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Nov 2010
Messaggi: 3
|
grazie mille, ora do un'occhiata ai link. se non risolvo posto codice!
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Nov 2010
Messaggi: 3
|
allora ho spulciato un po ma non ci ho capito molto....
Codice:
....
if(variabile==true){
final Shell dialog = new Shell(shell, SWT.APPLICATION_MODAL|SWT.DIALOG_TRIM);//shell è dove è contenuta la finestra principale
final Label text = new Label(dialog, SWT.NONE);
text.setText("Caricamento pagina");
final ProgressBar pb=new ProgressBar(dialog, SWT.INDETERMINATE);
dialog.setBounds(150, 150, 300,150);
dialog.setText("Caricamento..");
text.setBounds(30, 10, 110, 15);
pb.setBounds(30,30,100,50);
dialog.open();//apre la finestra con la progressbar
metodi_di_creazione_pdf....
....
dialog.close();//chiude la finestra con la progressbar
apertura_file_pdf...
}
...
Codice:
public PaginaIniziale(Shell shellParent){
super();
this.shellParent = shellParent;
}
/**
* Open the window
*/
public void open() {
final Display display = Display.getDefault();
createContents( display );
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:34.




















