JavaFX : Pb mot de passe masqué ou démasqué

Fermé
JamieMacUloth Messages postés 43 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 6 juin 2022 - Modifié le 19 mai 2021 à 14:41
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 19 mai 2021 à 16:49
Bonjour tout le monde,

Mon but est de créer en JavaFX - FXML - Java un champ de mot de passe avec la possibilité de démasquer (afficher) le mot de passe lors de la saisie. En Swing cela semblait assez intuitif, par exemple en cochant une checkbox j'arrivais simplement à démasquer le mot de passe, mais je n'y arrive pas du tout en JavaFx.

J'ai parcouru plusieurs forums et la réponse de fitorec dans celui-ci me paraît très adapté :

https://stackoverflow.com/questions/17014012/how-to-unmask-a-javafx-passwordfield-or-properly-mask-a-textfield

mais je ne comprends pas comment dire au textField de prendre les mêmes coordonnées que mon PasswordField => Quelles valeurs à donner au LayoutX et Y dans la solution de Fitorec?

J'ai vu un projet sous Git qui répond encore mieux à mon besoin car je voudrais faire ce mot de passe avec une icône oeil et si on clique sur l'oeil, on peut alors visualiser le mot de passe. Dans ce projet :

https://github.com/negste/PeekablePasswordField#peekablepasswordfield

les développeurs ont créé un "PeekablePasswordField" et d'après le readme, il est indiqué qu'il suffit de charger le .jar dans la librairie du SceneBuilder pour récupérer le composant PeekablePasswordField. J'ai simplement téléchargé le projet au format zip, converti en .jar et importé le .jar comme indiqué dans la librairie du Scene Builder mais Scene Builder ne voit pas le composant.

Est-ce que quelqu'un pourrait m'aider à résoudre mon problème soit en m'aiguillant sur l'une des ces 2 pistes, soit avec une autre idée?

Merci d'avance

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 mai 2021 à 16:49
Bonjour,

"J'ai simplement téléchargé le projet au format zip, converti en .jar et importé le .jar"
Le zip du projet contient le code source, il faudrait juste le décompresser et copier coller les fichiers dans ton projet.

Exemple :
import it.negste.peekablepasswordfield.PeekablePasswordField;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class PeekablePasswordFieldApplication extends Application {
  public static void main(String[] args) {
    launch(args);
  }

  @Override
  public void start(Stage stage) {
    PeekablePasswordField peekablePasswordField = new PeekablePasswordField();
    GridPane gridPane = new GridPane();
    gridPane.add(peekablePasswordField, 0, 0);
    stage.setScene(new Scene(gridPane, 200, 50));
    stage.show();
  }
}
0