Esconder conteúdo de uma caixa de texto Java Eclipse

11 respostas
Moreira99

Alguem sabe como meter **** no lugar do texto ?!
Capturar|453x53

11 Respostas

I

Porque não usa o componente apropriado para isso. O Java disponibiliza o componente JPasswordField justamente para trocar os dados de uma senha por asterisco. Visite Oracle Docs - Java: JPasswordField para acessar a documentação do Java sobre esse componente e Java Tutorials - How to Use Password Fields para ter uma ideia de como utilizá-lo.

Moreira99

vou experimentar,obrigado!

Moreira99

Tem algum código de exemplo de como usar? É que nao percebi muito bem

staroski

Pôxa, o colega @Iohannes postou links com documentação e exemplos, você não conferiu?

Um JPasswordField é semelhante à um JTextField, única diferença é que, para obter o conteúdo dele você utiliza o método getPassword() ao invés do getText().

Moreira99

peço desculpa amigo, mas não compreendi muito bem

staroski

Você sabe utilizar um JTextField?
Posta um código onde você utiliza que fica fácil mostrar a diferença.

Moreira99

Estou a aprender ainda ,pois preciso desta linguagem para desenvolver um trabalho

staroski

Então sua dificuldade não está em usar um JPasswordField.
O que lhe falta é primeiro ter o embasamento de programação com Java para depois conseguir desenvolver telinhas.

Moreira99

ja desenvolvi muitas mas nunca tinha usado Jpasswordfield

j0rg3m414

Segue isso que dá bom:
https://www.javaprogressivo.net/2013/11/JTextField-JPassword-Caixas-de-texto-e-senha-em-GUI.html

Moreira99

Estou a usar este código e da erro será que alguém podia dar umas dicas:

package gui;

import java.io.IOException;
import java.util.function.Consumer;

import javax.swing.JOptionPane;
import javax.swing.JPasswordField;

import application.Main;

import gui.util.Alerts;

import javafx.fxml.FXML;

import javafx.fxml.FXMLLoader;

import javafx.scene.Node;

import javafx.scene.Scene;

import javafx.scene.control.Alert.AlertType;

import javafx.scene.control.Button;

import javafx.scene.control.TextField;

import javafx.scene.layout.AnchorPane;

import model.services.stockservice;

public class LoginController {

@FXML
private Button Login;
@FXML
private Button Anterior;
@FXML
private TextField txtemail;
@FXML
private JPasswordField txtpass;


public void onBtAnterior() {
	loadNovo("/gui/Form1.fxml", x -> {
	});
}


public void onBtLogin() {
	if (txtemail.getText().equals("xxxxxx") && txtpass.getPassword().equals("yyyyy")){
		JOptionPane.showMessageDialog(null, "Bem vindo xxxx!!");
		loadNovo("/gui/Stock.fxml", (StockController stController) -> {
			stController.setstocksservice(new stockservice());
			stController.updateTableView();
		});

	} else {
		JOptionPane.showMessageDialog(null, "Dados Inválidos!!");
		txtemail.clear();
		
		
	}
	if (txtemail.getText().length() < 0) {
		JOptionPane.showMessageDialog(null, "Tem de preencher o seu email!!");
	} else {
		if (txtpass.getPassword().length< 0) {
			JOptionPane.showMessageDialog(null, "Tem de inserir a sua password!!");
		}
	}
}

private synchronized <U> void loadNovo(String absolutename, Consumer<U> initializingAction) {
	try {
		FXMLLoader loader = new FXMLLoader(getClass().getResource(absolutename));
		AnchorPane newAnchor = loader.load();
		Scene mainScene = Main.getMainScene();
		AnchorPane formAnchor = ((AnchorPane) mainScene.getRoot());
		Node mainMenu = formAnchor.getChildren().get(0);
		formAnchor.getChildren().clear();
		formAnchor.getChildren().add(mainMenu);
		formAnchor.getChildren().addAll(newAnchor.getChildren());

		U stController = loader.getController();
		initializingAction.accept(stController);

	} catch (IOException e) {
		Alerts.showAlert("IO Exception", "Error loading View", e.getMessage(), AlertType.ERROR);
	}
}

}

Criado 13 de maio de 2020
Ultima resposta 15 de mai. de 2020
Respostas 11
Participantes 4