4 votes

Comment mettre en noir un composant Swing ?

J'ai un besoin où, sous certaines conditions, je dois faire disparaître le composant swing (champ texte) en conservant sa valeur de chaîne de caractères.

1voto

Basilio German Points 1743

J'ai créé un petit exemple qui rend les caractères noirs et la boîte de texte noire également, en utilisant Seulement JTextField, comme vous l'avez demandé.

import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class RunnableTest{    
    public static void main(String args[]){

        JFrame frame = new JFrame("frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        JTextField textfield = new JTextField();
        textfield.setPreferredSize(new Dimension(400,30));
        textfield.setForeground(Color.black);
        textfield.setBackground(Color.black);
        textfield.setSelectedTextColor(Color.black);
        textfield.setSelectionColor(Color.black);

        frame.getContentPane().add(panel);
        panel.add(textfield);
        frame.pack();

         frame.setVisible(true);    
    } 
}

cette méthode textfield.setForeground(Color.black); met la police en noir, et textfield.setBackground(Color.black); cette autre méthode met l'arrière-plan en noir. et

textfield.setSelectedTextColor(Color.black);
textfield.setSelectionColor(Color.black);

rend la sélection noire afin que vous ne puissiez pas voir ce qui a été sélectionné.

Bien entendu, si vous ne souhaitez pas utiliser JTextField, vous pouvez utiliser le champ du mot de passe comme alternative et empêcher l'utilisateur de copier le texte.

EDIT : si vous ne voulez pas que l'utilisateur copie le texte en utilisant CTRL+C, ajoutez un adaptateur de touches au champ de texte afin de savoir quand l'utilisateur a appuyé sur les deux touches au même moment. bien sûr, il existe de nombreuses autres combinaisons sur d'autres systèmes, mais ce n'est pas la question.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X