Clavier virtuel de JavaFX

Arguments JVM

On peut ajouter les arguments suivant :

-Dcom.sun.javafx.touch=true 
-Dcom.sun.javafx.isEmbedded=true 
-Dcom.sun.javafx.virtualKeyboard=javafx

Les deux premiĂšres lignes ne sont pas obligatoires pour afficher le clavier virtuel. Elles sont utiles seulement si vous ĂȘtes dans un environnement embarquĂ© et tactile.

System Property

Vous pouvez modifier les propriétés avec System.setProperty

Il faudra modifier les propriétés avant l'initialisation de JavaFX.

System.setProperty("com.sun.javafx.touch", "true");
System.setProperty("com.sun.javafx.isEmbedded", "true");
System.setProperty("com.sun.javafx.virtualKeyboard", "javafx");

Exemple

package test;

public class Main {

public static void main(String[] args) {

   /* set property avant le démarrage de l'application JavaFX */

   /* nécessaire pour les écran tactiles */
   //System.setProperty("com.sun.javafx.touch", "true");

   /* nécessaire pour les projets embarqués */
   //System.setProperty("com.sun.javafx.isEmbedded", "true");

   // Clavier virtuel
   System.setProperty("com.sun.javafx.virtualKeyboard", "javafx");
  
   App app = new App();
   app.launchApp(args);
   
  }

}
package test;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.ScrollPane.ScrollBarPolicy;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class App extends Application {

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

    @Override
    public void start(Stage primaryStage) throws Exception {

        /*
         * 4 types : text (0), numeric (1), url (2), email (3)
         */

        Label urlFieldLabel = new Label("URL :");
        TextField urlField = new TextField();
        //Clavier virtuel avec le type URL
        urlField.getProperties().put("vkType", "url");


        Label emailFieldLabel = new Label("Email :");
        TextField emailField = new TextField();
        //Clavier virtuel avec le type email
        emailField.getProperties().put("vkType", "email");


        Label numberFieldLabel = new Label("Nombres :");
        TextField numberField = new TextField();
        //Clavier virtuel avec le type numérique
        numberField.getProperties().put("vkType", "numeric");


        Label textAreaLabel = new Label("Zone texte :");
        TextArea textArea = new TextArea();
        //Clavier virtuel avec le type texte
        textArea.getProperties().put("vkType", "text");


        /* Mise en page trÚs simple. Les éléments sont les uns aprÚs les autres avec un défilement si nécessaire */
        VBox panel = new VBox(urlFieldLabel, urlField, emailFieldLabel, emailField, numberFieldLabel, numberField,
    textAreaLabel, textArea);
 ScrollPane scrollPane = new ScrollPane(panel)

 primaryStage.setScene(new Scene(scrollPane));
 primaryStage.show();
    }

}

Le clavier virtuel de type text :

Le clavier virtuel de type numeric :

Le clavier virtuel de type email :

Le clavier virtuel de type url :

Commentaires