Javafx Ausführung

Trjavnamen

Bekanntes Mitglied
Ich benutze zur zeit einen Laptop die Oberfläche Eclipse neon3 und habe e(fx)clipse aus dem Marketplace installiert. Ich habe den scenebuilder 2 installiert. Und nach dem onlineTutorial folgende Listings erstellt
package application;

Java:
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;


public class Main extends Application {
   private Stage primaryStage;
          
  
       public void start(Stage primaryStage) {
           this.primaryStage = primaryStage;
           mainWindow();
       }  
          
          
      
       public void mainWindow(){
           try{
           FXMLLoader loader = new FXMLLoader(Main.class.getResource("MainWindow.fmxl"));
           AnchorPane pane =loader.load();
          
           primaryStage.setMinHeight(400.00);
           primaryStage.setMinWidth(400.00);
          
           MainWindowController mainWindowController = loader.getController();
           mainWindowController.setMain(this);
          
        Scene scene=new Scene(pane);
       primaryStage.setScene(scene);
       primaryStage.show();
  
       } catch(Exception e) {
          
       }
   }

}
Java:
package application;

import java.awt.Button;
import java.awt.Label;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;

public class MainWindowController {
   //views
   @FXML private Label label;
   @FXML private TextField field ;
   @FXML private TextField text33;
   @FXML private Button Print;
   @FXML private Button clear;
public Main main;  
public void setMain(Main main){
   this.main = main;
}
@FXML
public void handelprint(){
   text33=field;
}
@FXML
public void handelclir1(){
   field.clear();
}



  
}
und die MainWindow.fxml
XML:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.*?>
<?import javafx.scene.effect.*?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<fx:root cache="true" cacheHint="QUALITY" prefHeight="400.0" prefWidth="500.0" type="AnchorPane" xmlns="[URL]http://javafx.com/javafx/8[/URL]" xmlns:fx="[URL]http://javafx.com/fxml/1[/URL]" fx:controller="MainWindowContrller.java">
  <!-- TODO Add Nodes -->
  <children>
    <VBox id="VBox" alignment="CENTER" blendMode="GREEN" spacing="5.0" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="10.0">
      <children>
        <Label fx:id="label" alignment="CENTER" text="Label" />
        <TextField fx:id="field" alignment="CENTER" onAction="#fildakt" onMouseMoved="#handeltext" prefWidth="200.0" />
        <Button fx:id="Print" blendMode="GREEN" cache="true" cacheHint="QUALITY" mnemonicParsing="false" onAction="#handelprint" text="Print" textOverrun="WORD_ELLIPSIS" />
        <Button fx:id="clear" blendMode="GREEN" cache="true" cacheHint="QUALITY" mnemonicParsing="false" onAction="#handelclir2" text="clear" />
        <TextField fx:id="text33" alignment="CENTER" onMouseExited="#handelfill" prefWidth="200.0" />
      </children>
         <cursor>
            <Cursor fx:constant="DEFAULT" />
         </cursor>
    </VBox>
  </children>
</fx:root>
in der view ansicht javafxPreview von eclipse wird das Fenster korrekt angezeigt.
Nach dem Run öffnet sich ein Fenster mit weißer Fläche.
der Windows Paht ist auf C:\Program Files\Java\jdk1.8.0_131
und classpaht auf C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.
Was ist falsch?
 
Zuletzt bearbeitet von einem Moderator:
das jr. sollte eigendlich jr.jar heißen (probiert ohne erfolg) Die bin von jdk und jar als Paht mit ;getrennt angeben? (Probiert ohne Erfolg) CLASSPHATH "bin oder lib? mit ;getrennt und abgeschlossen mit;."?
 
Ich bekomme ein Weißes Fenster ohne nix
kein button kein Textfield keine Fehlermeldungen
ein anchorpane ohne nix aber in JavaFXPreview bei aktievierten fxml dokument alles was ich in SceneBuilder eingerichtetr habe. zwei button zwei Textfelder
 
Die Fehlermeldung kommt schon - du wirfst sie nur hiermit weg:
Java:
} catch(Exception e) {
         
}

Lass dir die da mal ausgeben 😉
 
das löschen des Exeption löst alles in chaos auf. Jedes ; } wird mit falsch token moniert, der versuch zu starten löst eine Ellenlange liste roter einträge ohne Endergebnis.
 
Was meinst du mit "Exception löschen"? 😵

Da muss nichts gelöscht werden, da muss was ergänzt werde - der catch-Block sollte Niemals leer sein.
Am einfachsten mit einem e.printStacktrace()
 

Zurück
Oben