Chcę pokazać pasek postępu. Położyłem kod, aby otworzyć JFrame
zawierający pasek postępu na początku funkcji. Ale pasek postępu otwiera się dopiero po zakończeniu wykonywania funkcji
public void function(){
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ProgressSearch().setVisible(true);
}
});
instruction 1;
instruction 2;
instruction 3;
instruction 4;
instruction 5;
}
powyższy kod wyświetla jedynie pasek postępu po zakończeniu funkcji
Odpowiedzi:
0 dla odpowiedzi № 1Spróbuj dodać statyczne "pola postępu" do swojej klasy. Następnie zaktualizuj te pola, gdy tworzona jest twoja ramka JFrame, i pobieraj ich wartości z kodu przy użyciu Class.StaticField
na przykład.,
public class MyClass {
public static PROGRESS;
public MyClass () {...}
(...)
PROGRESS = (...);
(...)
PROGRESS = (...);
(...)
}
i dostać MyClass.PROGRESS
Ponadto, nie zapomnij zresetować zmiennej PROGRESS po pełnym zakończeniu, aby za każdym razem, gdy tworzysz inną ramkę JFrame z tej samej klasy, uzyskasz czysty postęp od 0.
Pozdrowienia,