JavaFX NFC Reader Проблема с терминалом.waitForCardPresent (0); - PullRequest
0 голосов
/ 16 октября 2018

Я новичок в объектно-ориентированном программировании, особенно в Java ...: (Попытка реализовать кард-ридер nfc, который считывает uid с карты, а затем сохраняет данные в базе данных mysql. Все красиво и чисто на этапе JavaFX.пока все хорошо. Я написал (лучше скопировать и вставить) из сетевых решений класс базы данных и класс Reader nfc - написал свой собственный этап JavaFX с меню и подценами - который сейчас работает нормально. Моя проблема, почему я пишу здесьэто: у меня есть Mainclass, который показывает различные сцены и меню в JavaFx - импортировал мой класс Reader nfc и попытался вызвать метод readNfcCard () после xxxx.setScene (); xxxx.show (); в JavaFx и выяснил,что это работает не так, как ожидалось. Если я запускаю код, он показывает мне в консоли, что терминал Reader nfc ждет карты, но не отображает новую сцену во время ожидания. - метод Terminal.waitForCardPresent (0);блокирует все мое приложение ... так что я должен обойти это! Так что я искал здесь и увидел, чтоу некоторых людей там была та же проблема с их приложениями Swing.Поэтому я обнаружил, что это может быть лучший способ использовать Runnables (чего я сейчас не знаю) и ExecutorService.

public class FTM_NFC_Reader implements Runnable {

и добавил прогон переопределенияв конце

@Override
public void run() {
System.out.println(readNfcCard());

}

и в моем MainClass я изменил:

     hauptFenster.setScene(nfcinfoscene);
    hauptFenster.show();
    FTM_NFC_Reader read1 = new FTM_NFC_Reader();
    this.uidmain = read1.readNfcCard();

на

ExecutorService executorService = Executors.newSingleThreadExecutor();
    executorService.execute((read1::run));
    executorService.shutdown();

с помощью netbeans :) Что работает для консолиВывод как ожидалось.Но я понятия не имею, как заставить данные в моем основном классе работать с прочитанными данными из метода nfcread.

Кто-нибудь там решал эту проблему в своем приложении, или я могу дать совет, где найти большеИнформация об этом?

Один шаг за другим ....

Если вам нужно больше информации или вы меня не понимаете - потому что английский не мой родной язык Извините за это!- так, пожалуйста, скажите мне.

Итак, в конце концов, спасибо за чтение и большое сообщество здесь, которое уже очень помогло мне в моих проектах !!!!

...