Come mettere l'interfaccia creata con JavaFX sul codice C? [chiuso]

-2

Sto creando un'applicazione server / client. Le parti server e client devono essere scritte in linguaggio C. Tuttavia, per l'interfaccia utente mi piacerebbe usare javafx. Quindi, la domanda è possibile combinare javafx con C ? Se lo è, allora come faccio a farlo correttamente?

    
posta A. Aziz 26.11.2018 - 15:19
fonte

2 risposte

4

No, JavaFX è un'API Java. Non puoi usarlo da C. Mentre puoi usare C e Java nello stesso processo, ad es. creando legami JNI, ciò richiede uno sforzo di sviluppo sostanziale e implica un sovraccarico delle prestazioni, poiché JNI deve copiare tutti i dati tra la sua rappresentazione C e la sua rappresentazione Java. Sarebbe probabilmente molto più semplice e risulterebbe in un programma molto più stabile, se lo fai

  • scrivi il tuo client completamente in Java o
  • scrivi anche la tua GUI in C o C ++.
risposta data 26.11.2018 - 16:02
fonte
0

Quindi stai scrivendo un programma in C (probabilmente il tuo codice cliente) e vuoi aggiungere qualche interfaccia utente ad esso.

Si noti che lo standard C11 (leggi n1570 ) fornisce molto funzionalità limitate per l'interazione dell'utente (in pratica, argomenti del programma e <stdio.h> ). Probabilmente vuoi utilizzare una libreria esterna, che di solito sarebbe sistema operativo dipendente.

In un primo momento potresti pensare di creare un programma a riga di comando. Quindi il tuo programma C analizza semplicemente gli argomenti del programma ad esso assegnati (cioè argomenti a main ) e agisce di conseguenza. Anche questo è spesso specifico del sistema operativo, ma questa risposta fornisce alcune indicazioni. Cordiali saluti, la documentazione della libreria GNU Glibc ha un capitolo su analisi degli argomenti del programma .

Potresti anche definire sintassi e semantica per il tuo input standard e utilizzare le comuni analisi su di essa. Potresti utilizzare le tecniche di analisi della discesa ricorsiva . Ma potrebbe non essere molto user-friendly (perché il tuo utente non può facilmente modificare il proprio input).

Su molti sistemi, l'utente può interagire con il tuo programma tramite un emulatore di terminale (che è molto più complesso di quello che <stdio.h> fornisce). Sui sistemi Unix o POSIX, leggi tty demistificato e utilizza librerie come termios(3) o preferibilmente ncurses (o almeno readline ).

Potresti considerare di fornire alcune GUI . In pratica, devi quindi utilizzare alcuni toolkit , come GTK (o Qt in C ++) o libSDL .

Potresti aspettarti che il tuo utente utilizzi il suo browser web. Quindi si desidera aggiungere qualche interfaccia Web. Per questo, dovresti rendere il tuo programma C un server web specializzato, usando una libreria di server HTTP come libonion o libhttp . Naturalmente, è necessario avere familiarità con le tecnologie web, tra cui HTTP, HTML5, CSS, AJAX.

Dato che nella domanda hai menzionato JAVAFX , potresti dividere il tuo software in diversi processi facendo comunicazione inter-processo (allora si dovrebbe avere un programma di interfaccia utente scritto in Java che comunica con i programmi C, in che modo viene realizzato il sistema operativo specifico ).

    
risposta data 27.11.2018 - 07:30
fonte

Leggi altre domande sui tag