Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Изчакване на задачи

Featured Replies

Здравейте. Пиша една програма на която прявя нещо като инсталатор обаче имам малък проблем.

Та когато се стартира програмата изкача един прозорец  в който трябва да натиснете бутона "Yes" за да започне инсталацията. Първото нещо което става след натискането на бутона е създаването на базата данни но преди това сменям текста на един Label. Та проблема ми е че смяната на текста не става или просто не се визуализира а на право започва изпълнението на метода за създаване на базаданни.

Това е евента който се изпълнява след натискане на бутона "YES" обаче този текст "Моля изчакайте." не се сетва в message а направо се изпълнява CreateDatabase.createDatadase();

@FXML
    private void createDatabase(ActionEvent event) {
        message.setText("Моля изчакайте.");
        CreateDatabase.createDatadase();
        yesButton.setVisible(false);
        noButton.setVisible(false);
        closeButton.setVisible(true);
        image.setImage(new Image("/images/yes.png"));
        message.setText("Подготовката премина успешно. Затворете прозореца за да стартирате програмата.");
    }

 

Здравейте !

Опитайте със следното:

Цитат

// assuming you have defined a StringProperty called "valueProperty"
Label myLabel = new Label("Start");
myLabel.textProperty().bind(valueProperty)

Източник: Displaying changing values in JavaFx Label

P.S. Малко по-надолу в цитирания източник има и примерни реализации с код, за постигане на още по - динамични истории.

Поздрави !

Редактирано от soundtracker (преглед на промените)

  • Автор

Благодаря за отговора. Резултатът е пак същия и мисля че трябва да преразгледам кода защото не ми се пускат нишки за такава проста задача.

  • Автор

Това не ми се нрави много много но за сега работи.

@FXML
    private void createDatabase(ActionEvent event) {

        message.setText("Моля изчакайте...");
        yesButton.setVisible(false);
        noButton.setVisible(false);
        Task<Void> sleeper = new Task<Void>() {
            @Override
            protected Void call() throws Exception {
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.getMessage();
                }
                return null;
            }
        };

        sleeper.setOnSucceeded((WorkerStateEvent event1) -> {
            CreateDatabase.create();
            closeButton.setVisible(true);
            image.setImage(new Image("/images/yes.png"));
            message.setText("Подготовката премина успешно. Затворете прозореца за да стартирате програмата.");
        });
        new Thread(sleeper).start();

    }

 

  • 2 седмици по-късно...
package com;

/**
 * @author Zealar
 *
 */
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class LabelUpdate extends Application
{
	public static void main(String[] args)
	{
		launch(args);
	}
	
	static Label message = new Label("?");
	static Button btn = new Button("Инсталирай");
	
	@Override
	public void start(Stage primaryStage)
	{
		
		btn.setOnAction(event -> createDatabase());
		
		VBox root = new VBox();
		root.getChildren().addAll(message, btn);
		primaryStage.setScene(new Scene(root, 300, 250));
		primaryStage.show();
	}
	
	static void createDatabase()
	{
		message.setText("Моля изчакайте.");
		Thread th = new Thread(() ->
		{
			insertInDatabase();
			Platform.runLater(() ->
			{
				message.setText("Подготовката премина успешно. Затворете прозореца за да стартирате програмата.");
			});
			
		});
		th.setDaemon(true);
		th.start();
	}
	
	static void insertInDatabase()
	{
		try
		{
			Thread.sleep(5000);
		}
		catch (InterruptedException e)
		{
			e.printStackTrace();
		}
	}
}

 

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.