2017-01-13 2 views
1

Ich suche Informationen über javafxports Technologie und kann ich in diesem Projekt FXML-Datei verwenden.FXML-Datei in javafxports Projekt

Das ist mein build.gradle:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'org.javafxports:jfxmobile-plugin:1.1.0' 
    } 
} 

apply plugin: 'org.javafxports.jfxmobile' 

repositories { 
    jcenter() 
    maven { 
     url 'http://nexus.gluonhq.com/nexus/content/repositories/releases' 
    } 
} 

mainClassName = 'com.orden.First' 

dependencies { 
    compile 'com.gluonhq:charm:4.0.0' 

    // Desktop SQL -> https://github.com/xerial/sqlite-jdbc 
    desktopRuntime 'org.xerial:sqlite-jdbc:3.8.11.2' 

    embeddedRuntime 'com.gluonhq:charm-down-plugin-storage-desktop:3.0.0' 
    // Embedded SQL -> https://github.com/xerial/sqlite-jdbc 
    embeddedRuntime 'org.xerial:sqlite-jdbc:3.7.2' 

    // Android SQL -> https://github.com/SQLDroid/SQLDroid 
    androidRuntime 'org.sqldroid:sqldroid:1.0.3' 

    // ios SQL -> https://github.com/robovm/robovm 1.8 
} 

jfxmobile { 
    downConfig { 
     version = '3.0.0' 
     plugins 'display', 'lifecycle', 'statusbar', 'storage' 
    } 
    android { 
     manifest = 'src/android/AndroidManifest.xml' 
     androidSdk = 'C:/Program Files (x86)/Android/android-sdk/' 
    } 
    ios { 
     infoPList = file('src/ios/Default-Info.plist') 
     forceLinkClasses = [ 
       'com.gluonhq.**.*', 
       'javax.annotations.**.*', 
       'javax.inject.**.*', 
       'javax.json.**.*', 
       'org.glassfish.json.**.*', 
       'SQLite.**.*' 
     ] 
    } 
    embedded { 
     remotePlatforms { 
      raspberry { 
       host = '192.168.1.10' 
       username = 'pi' 
       password = 'raspberry' 
       workingDir = '/home/pi/Gluon' 
       jreLocation = '/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt' 
       execPrefix = 'sudo' 
      } 
     } 
    } 
} 

Und das ist mein JavaFX erste Seite Code:

package com.orden; 

import java.io.File; 
import java.net.URL; 

import javafx.application.Application; 
import javafx.fxml.FXMLLoader; 
import javafx.geometry.Rectangle2D; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.image.Image; 
import javafx.scene.layout.AnchorPane; 
import javafx.scene.layout.StackPane; 
import javafx.stage.Screen; 
import javafx.stage.Stage; 

public class First extends Application { 
    public void start(Stage primaryStage) { 
     try { 

      URL url = new File("src/main/java/com/orden/views/MainWindowFXML.fxml").toURL(); 
      URL url2 = new File("src/main/java/com/orden/views/application.css").toURL(); 
      AnchorPane root = (AnchorPane)FXMLLoader.load(url); 


      Scene scene = new Scene(root); 
      scene.getStylesheets().add(url2.toExternalForm()); 

      primaryStage.setScene(scene); 
      primaryStage.show(); 
      primaryStage.setTitle("Image saver"); 
      primaryStage.setResizable(true); 

     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 


    public static void main(String[] args) { 
     launch(args); 
    } 

} 

Wie wir kann ich Datei verwenden FXML alle meine grafischen Struktur (Kontrollen definieren etc.). Alles kompilieren ok. Ich kann auch .apk Datei erstellen und meine Anwendung auf smartfon mit Android OS ausführen. Das Problem ist, wenn ich die Anwendung starte ich sehe nur schwarzen Bildschirm, sonst nichts.

Wenn jemand weiß, wie dieses Problem beheben, bin ich auf irgendwelche Tipps offen. Ich brauche die Lösung Schritt für Schritt, weil Gluon Plugin-Konfiguration ist schwer.

Im Folgenden werde ich meine präsentiert Dateibaum:

enter image description here

Antwort

0
URL url = getClass().getResource("views/MainWindowFXML.fxml"); 
URL url2 = getClass().getResource("views/application.css"); 

oder

URL url = getClass().getResource("/com/orden/views/MainWindowFXML.fxml"); 
URL url2 = getClass().getResource("/com/orden/views/application.css"); 

oder

URL url = getClass().getClassLoader().getResource("com/orden/views/MainWindowFXML.fxml"); 
URL url2 = getClass().getClassLoader().getResource("com/orden/views/application.css"); 
+0

In jedem Fall sehe ich: „java.lang.NullPointerException : Standort ist r geeignet. " Fehler –

+1

@DawidMalczak Wo sind diese Dateien hinzugefügt? Src oder Ressourcenpaket? Bei Verwendung von Gradle müssen sie im Ressourcenpaket enthalten sein. –

+0

Bitte klicken Sie auf den Bildlink am Ende meiner Frage. Da ist mein Dateibaum. –

Verwandte Themen