CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Le JLabel joue à cache à cache...

LeuNoeleeste
LeuNoeleeste
Niveau 10
25 septembre 2014 à 21:53:43

Non franchement, bonsoir, j'ai une question :noel:

J'ai une page de code. Il y a deux JPanel dessus. L'un est en vert, l'autre en jaune. Un JLabel, en rouge, doit apparaître au nord du JPanel vert.

Le soucis c'est qu'il veut pas, et je ne comprends pas pourquoi (lors de la compilation, la fenêtre est totalement verte alors qu'elle devrait être successivement rouge, vert, jaune) :rire:

Voici la partie de code qui m'embête :

http://pastebin.com/ZfpaVmrV

Que dois-je modifier selon vous ? :)

EppulJecks
EppulJecks
Niveau 7
26 septembre 2014 à 01:15:12

Je vois trois problème.
Déjà tu ne mets pas de texte dans ton JLabel, il risque pas de s'afficher. :hap:
Ensuite si tu veux mettre une couleur à ton texte, utilise setForeground(Color)

Ensuite pour ton problème de jaune qui apparait pas ça semble être a cause du grid layout que tu lui mets. Vu que la grille est vide, sa hauteur est 0.
Tu peux utiliser
Jaune.setPreferredSize(new Dimension(this.getWidth(),100));
pour changer manuellement la taille de ta boite (ici, largeur de la fenetre, hauteur 100 pixels).

LeuNoeleeste
LeuNoeleeste
Niveau 10
27 septembre 2014 à 12:07:54

Merci ! Autre chose, simple question cette fois ci par contre, est-il possible de rajouter un 3e Panel (rouge disons) qui afficherait une colonne de boutons à l'Est ?

Ceci donnerait donc :

--------

JPanel Red = new JPanel();
BorderLayout question = new BorderLayout();
Red.setLayout(question);

Red.setBackground(Color.RED);

Red.add(new JButton("toast1"), BorderLayout.EAST);
Red.add(new JButton("toast2"), BorderLayout.EAST);
Red.add(new JButton("toast3"), BorderLayout.EAST);

----------

C'est bien ça ? :)

EppulJecks
EppulJecks
Niveau 7
27 septembre 2014 à 19:06:51

Je suis pas sûr de ce que tu veux faire. Si tu veux mettre plusieurs éléments à l'est d'un JPanel, tu devrais plutôt créer un JPanel pour mettre des boutons et mettre ce JPanel à l'est. Bon je ne prétends pas avoir la meilleure solution mais je verrais les choses comme ça.

//on crée le panel principal ici
JPanel Red = new JPanel();
Red.setBackground(Color.RED);
Red.setLayout(new BorderLayout());

//on crée un panel pour mettre les boutons
JPanel boutonsContainer = new JPanel();
boutonsContainer.setBackground(Color.RED);
//Tu mets le layout que tu veux hein, le flow est juste plus simple pour l'exemple
boutonsContainer.setLayout(new FlowLayout());
boutonsContainer.add(new JButton("Toast1"));
boutonsContainer.add(new JButton("Toast2"));
boutonsContainer.add(new JButton("Toast3"));

//On met le panel qui contient les boutons à l'est du panel principal
Red.add(boutonsContainer, BorderLayout.EAST);

Ça devrait fonctionner :hap:

Et tu feras gaffe parce que le flowlayout s'adapte à la taille disponible, si rien est précisé il va mettre les boutons en ligne et la partie Est va être très large. Donc soit tu précise une taille pour le conteneur de boutons (surtout la largeur pour ton cas), soit tu prends un autre layout.

Ensuite tu voudras peut être garder tes boutons en mémoire si tu veux les utiliser, mais ça allège le code.

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment