web-dev-qa-db-fra.com

Comment ajouter du texte à JFrame?

Je conçois donc un cadre JFrame à l’aide de Eclipse WindowBuilder. Cette image spécifique est un message d'erreur indiquant que l'utilisateur a fourni des informations d'identification non valides. J'ai ajouté un bouton pour quitter le cadre et je dois maintenant afficher le message d'erreur "Les identifiants de connexion spécifiés ne sont pas valides. Veuillez fournir des identifiants valides."

J'ai fait quelques recherches et tout le monde a dit d'utiliser un JLabel, mais lorsque je crée mon JLabel et que j'y entre le texte, il n'y a pas de retour à la ligne ni quoi que ce soit, je ne peux donc pas insérer l'étiquette dans mon cadre. 

Quel est un moyen simple d'afficher simplement un message au centre du JFrame?

8
thaweatherman

Pour créer une étiquette pour du texte:

JLabel label1 = new JLabel("Test");

Pour changer le texte dans l'étiquette:

label1.setText("Label Text");

Et enfin pour effacer l'étiquette:

label1.setText("");

Et tout ce que vous avez à faire est de placer l’étiquette dans votre mise en page, ou le système de mise en page que vous utilisez, puis de l’ajouter au JFrame ...

9
Bhavik Ambani

Au lieu de perdre votre temps à concevoir une JFrame juste pour afficher un message d'erreur, vous pouvez utiliser une JOptionPane qui est modale par défaut: 

import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "Your message goes here!","Message", JOptionPane.ERROR_MESSAGE);
    }
}

enter image description here

P.S. Arrêtez d'utiliser Windowbuilder si vous voulez apprendre Swing.

4
Branislav Lazic

quand je crée mon JLabel et que j'entre le texte, il n'y a pas de wordwrap ou quoi que ce soit

Le formatage HTML peut être utilisé pour provoquer un retour à la ligne dans tout composant Swing proposant un texte stylé. PAR EXEMPLE. comme démontré dans cette réponse .

3
Andrew Thompson

Vous pouvez ajouter une étiquette multiligne avec les éléments suivants:

JLabel label = new JLabel("My label");

label.setText("<html>This is a<br>multline label!<br> Try it yourself!</html>");

A partir de là, ajoutez simplement l'étiquette au cadre en utilisant la méthode add (), et le tour est joué!

0
bohlmanc