Есть Label. Я хочу получить следующий алгоритм:
Нажатие на кнопку -> Установить текст("test1") -> что-то делать -> Установить текст("test2").
Но поле нажатия, устанавливается текст "test2".
// Action нажатия на кнопку
Platform.runLater(() -> info.setText("test1"));
// Что-то делаем. (Background задача)
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Platform.runLater(() -> info.setText("test2"));
Я даже пробовал создать класс, наследующий от Service, который реализует
@Override
protected Task<Void> createTask()
В котором я устанавливал текст.
Естественно пробовал info.setText("test1") -> background-задача в отдельном потоке -> info.setText("test2") Но всё равно не получается. Не могли бы Вы мне подсказать: как в рантайме изменить элемент интерфейса?
Класс потока:
class MyThread extends Thread{
final Runnable onStopTask;
public MyThread(Runnable onStopTask) {
this.onStopTask = onStopTask;
start();
}
@Override
public void run() {
System.out.println("Start thread");
try {
System.out.println("Do something ...");
sleep(5000);
} catch (Exception e) {
}
Platform.runLater(onStopTask);
System.out.println("Stop thread\n");
}
}
Класс приложения:
public class ThreadTest extends Application {
@Override
public void start(Stage primaryStage) {
try {
Label first = new Label();
Label second = new Label();
Button btn = new Button("Action");
btn.setOnAction(e->{
first.setText("First");
new MyThread(()->second.setText("Second"));
});
VBox root = new VBox(20.0, btn, first, second);
Scene scene = new Scene(root,400,400);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Проблема: мне нужно из фрагмента C вернуться на AКогда я это делаю, то фрагмент A инициализируется(все методы жизненого цикла отрабатывают),...
Задание: нужно проверить, содержится ли в первой строке вторая строка и вывести "Содержится" или "Не содержится"Использовать стандартные...