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
Enregistrer un commentaire