Guten Abend,
Ich arbeite derzeit an einem kleinen Projekt, das einen Server und eine kleine Benutzeroberfläche erfordert, die ich mit JavaFX erstellt habe. Ich muss die Benutzeroberfläche über die Eingabeaufforderung mit mvn javafx:run starten (wie im code zu sehen verwende ich maven, um meine Dependencies (auch JavaFX) zu verwalten). Ich starte den Server ganz normal über Eclipse. Das funktioniert soweit auch und beide Programme starten wie gewünscht. Es scheint nur, als könnten sie nicht miteinander kommunizieren. Die Befehle der Benutzeroberfläche kommen nicht im "eigentlichen" Programm an. Es scheint, als würden zwei separate Versionen ausgeführt und keine einheitliche.
Hier meine Main-Klasse für die FX Anwendung (diese starte ich über die Konsole mittels mvn javafx:run):
Der dazugehörende Controller ist der folgende:

Wie zu sehen habe ich eine einfache for-Schleife implementiert, um zu prüfen, ob "Receiving test" auch in Eclipse angezeigt wird oder nicht - mit dem Ergebnis, dass ich es nur in meinem cmd sehen kann, nicht in Eclipse.
Und hier ist noch mein Tomcat, der das eigentliche Programm startet. Diesen starte ich natürlich zuerst. Ka ob der groß relevant ist aber der vollständigkeitshalber hab ich ihn mal eingefügt:
Prinzipiell geht es mir quasi darum den UserInput den ich über mein GUI erhalte im eigentlichen Programm auch verwenden zu können. Aktuell scheint es so als würden diese beiden Programme aneinander vorbei laufen....
PS: Sowohl die FX-Main, der Controller als auch die TomcatStart-Klasse liegen im selben Projekt sowie im gleichen Verzeichnis.
Ich arbeite derzeit an einem kleinen Projekt, das einen Server und eine kleine Benutzeroberfläche erfordert, die ich mit JavaFX erstellt habe. Ich muss die Benutzeroberfläche über die Eingabeaufforderung mit mvn javafx:run starten (wie im code zu sehen verwende ich maven, um meine Dependencies (auch JavaFX) zu verwalten). Ich starte den Server ganz normal über Eclipse. Das funktioniert soweit auch und beide Programme starten wie gewünscht. Es scheint nur, als könnten sie nicht miteinander kommunizieren. Die Befehle der Benutzeroberfläche kommen nicht im "eigentlichen" Programm an. Es scheint, als würden zwei separate Versionen ausgeführt und keine einheitliche.
Hier meine Main-Klasse für die FX Anwendung (diese starte ich über die Konsole mittels mvn javafx:run):
Java:
public class FX extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
try {
Parent root = FXMLLoader.load(getClass().getResource("../main/Scene.fxml"));
Scene scene = new Scene(root);
//scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Der dazugehörende Controller ist der folgende:
Code:
public class Controller {
@FXML
private TextField senderField;
@FXML
private TextField receiverField;
@FXML
private TextField amountField;
@FXML
private TextField tfbpField;
@FXML
private TextField tflField;
@FXML
private TextField nonceField;
@FXML
private Button submitButton;
@FXML
void submitPressed(ActionEvent event) {
System.out.println("Submit Pressed");
byte[] sender = SHA3Helper.hexToDigest(senderField.getText());
byte[] receiver = SHA3Helper.hexToDigest(receiverField.getText());
double amount = Double.parseDouble(amountField.getText());
double tfbp = Double.parseDouble(tfbpField.getText());
double tfl = Double.parseDouble(tflField.getText());
Transaction transaction = new Transaction(sender, receiver, amount, 0, tfbp, tfl);
System.out.println(transaction.getAmount());
DependencyManager.getPendingTransactions().addPendingTransaction(transaction);
for(int i = 0; i<100 ; i++) {
System.out.println("Receiving test");
}
}
}

Wie zu sehen habe ich eine einfache for-Schleife implementiert, um zu prüfen, ob "Receiving test" auch in Eclipse angezeigt wird oder nicht - mit dem Ergebnis, dass ich es nur in meinem cmd sehen kann, nicht in Eclipse.
Und hier ist noch mein Tomcat, der das eigentliche Programm startet. Diesen starte ich natürlich zuerst. Ka ob der groß relevant ist aber der vollständigkeitshalber hab ich ihn mal eingefügt:
Code:
public class Start
{
public static void main( String args[] )
{
try
{
Tomcat tomcat = new Tomcat( );
String webappDirectory = new File( "src/main/webapp" ).getAbsolutePath( );
tomcat.setPort( 8080 );
Context context = tomcat.addWebapp( "", webappDirectory );
Tomcat.addServlet( context, "example", new ServletContainer( new Application( ) ) );
context.addServletMappingDecoded( "/example/api/*", "example" );
tomcat.start( );
tomcat.getServer( ).await( );
}
catch ( Exception e ) {
e.printStackTrace( );
}
}
}
Prinzipiell geht es mir quasi darum den UserInput den ich über mein GUI erhalte im eigentlichen Programm auch verwenden zu können. Aktuell scheint es so als würden diese beiden Programme aneinander vorbei laufen....
PS: Sowohl die FX-Main, der Controller als auch die TomcatStart-Klasse liegen im selben Projekt sowie im gleichen Verzeichnis.