Witam wszystkich, jestem nowy na forum i ogólnie w programowaniu, zacząłem naukę właśnie od javy i mam problem który nie wiem jak rozwiązać:
W ramach nauki JavaFX chciałem zrobić symulator logowania. Wcześniej próbowałem przy pomocy thread.sleep ale efekt był taki że pauzwało całe GUI.
Chodzi mi o to żeby po wciśnięciu przycisku zaloguj widniał napis Logowanie... (ale żeby kropki się odliczały).
W tej chwili po poprawkach prawie działało jak trzeba, ale nagle przestała się w ogóle aplikacja uruchamiac (na dole w konsoli powiadomień gradle jest napisane task:run i kręci się ale apki nie uruchamia)
Kod wiem że bardzo rozwalony i mega syf, ale to dopiero początek nauki, więc z góry dziękuje za pomoc w rozwiązaniu czemu się nie uruchamia, i ewentualnie jak to rozwiązać z opoźnieniem.
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import java.awt.*;
import java.util.Timer;
import java.util.TimerTask;
public class Zadanie extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Group grupa = new Group();
Label label = new Label("Witam w mojej aplikacji. \n Jest to aplikacja szkoleniowa" +
"\n Ma ona za zadanie utrwalic kurs z Java oraz JavaFX" +
"\n Jest to symulator logowania" +
"\n Wprowadz dane ponizej aby sie zalogowac");
Label niewlasciwe = new Label("Login lub haslo sa puste lub niewlasciwe");
niewlasciwe.setLayoutY(220);
niewlasciwe.setVisible(false);
Label zalogowany = new Label("Logowanie pomyslne!");
zalogowany.setVisible(false);
Label logowanie1 = new Label("Logowanie.");
logowanie1.setVisible(false);
logowanie1.setLayoutY(300);
Label logowanie2 = new Label("Logowanie..");
logowanie2.setVisible(false);
logowanie2.setLayoutY(300);
Label logowanie3 = new Label("Logowanie...");
logowanie3.setVisible(false);
logowanie3.setLayoutY(300);
TextField login = new TextField();
login.setLayoutY(120);
login.setPromptText("Wprowadz login");
PasswordField haslo = new PasswordField();
haslo.setPromptText("Wprowadz haslo");
haslo.setLayoutY(150);
Button zaloguj = new Button("Zaloguj");
zaloguj.setLayoutY(180);
zaloguj.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
class MyTimerTask extends TimerTask {
@Override
public void run() {
logowanie1.setVisible(true);
}
}
class MyTimerTask2 extends TimerTask {
@Override
public void run() {
logowanie2.setVisible(true);
}
}
class MyTimerTask3 extends TimerTask {
@Override
public void run() {
logowanie3.setVisible(true);
}
}
Timer timer1 = new Timer();
MyTimerTask timer1_task = new MyTimerTask();
timer1.schedule(timer1_task, 0, 2000);
Timer timer2 = new Timer();
MyTimerTask2 timer2_task = new MyTimerTask2();
timer1.schedule(timer2_task, 2000, 2000);
Timer timer3 = new Timer();
MyTimerTask3 timer3_task = new MyTimerTask3();
timer1.schedule(timer3_task, 4000, 2000);
String loginWlasciwy = login.getText();
String hasloWlasciwe = haslo.getText();
class MyTimerTask4 extends TimerTask {
@Override
public void run() {
Timer timer4 = new Timer();
MyTimerTask4 timer4_task = new MyTimerTask4();
timer4.schedule(timer4_task, 6000);
if (loginWlasciwy.equals("login") && hasloWlasciwe.equals("haslo")) {
label.setVisible(false);
login.setVisible(false);
haslo.setVisible(false);
zaloguj.setVisible(false);
niewlasciwe.setVisible(false);
zalogowany.setVisible(true);
logowanie1.setVisible(false);
logowanie2.setVisible(false);
logowanie3.setVisible(false);
} else {
niewlasciwe.setVisible(true);
logowanie1.setVisible(false);
logowanie2.setVisible(false);
logowanie3.setVisible(false);
}
}
}
grupa.getChildren().add(login);
grupa.getChildren().add(label);
grupa.getChildren().add(haslo);
grupa.getChildren().add(zaloguj);
grupa.getChildren().add(niewlasciwe);
grupa.getChildren().add(zalogowany);
grupa.getChildren().add(logowanie1);
grupa.getChildren().add(logowanie2);
grupa.getChildren().add(logowanie3);
Scene scena = new Scene(grupa, 800, 600);
primaryStage.setScene(scena);
primaryStage.setTitle("Aplikacja z zadania");
primaryStage.show();
}
});
}
}