est-il possible d'ajouter un jlabel sur un autre jlabel? Merci. p>
5 Réponses :
La réponse courte est oui, comme un dans le code ci-dessus, le Cependant, visuellement, une étiquette avec le texte "Hello" apparaît, donc on ne peut pas vraiment voir l'étiquette contenue dans l'étiquette. p> Donc, la question descend ce que l'on veut vraiment accomplir en ajoutant Une étiquette sur une autre étiquette. P> à partir des commentaires: P> Eh bien, ce que je voulais faire était d'abord,
Lire une certaine fraction d'un fichier,
puis affichez cette fraction dans un
jlabel. Ce que j'ai pensé était de
Divisez la fraction en 3 parties, puis
Utilisez une étiquette pour chacun des trois.
Puis deuxièmement, je veux pouvoir traîner
la fraction, alors je pensais pouvoir utiliser
un autre jlabel, et placer les 3'mini
Jlabels 'sur le grand jlabel. Je ne
savoir si cela fonctionnera cependant ..: | p>
blockQuote> On dirait que l'on dirait qu'il faut examiner comment utiliser les gestionnaires de mise en page en Java. p> Un bon endroit pour démarrer serait Utilisation des gestionnaires de layout et Guide visuel des gestionnaires de mise en page , tous deux de Les tutoriels Java . P> Cela ressemble à un Jlabel code>
est un conteneur code>
, il peut donc accepter un composant code>
(A jlabel code> est une sous-classe de
composant code>) à Ajouter dans le
jlabel code> en utilisant
ajout code>
méthode: INSIDELABEL code> est ajouté au
Outsidelabel code>. p>
gridlayout code>
pourrait être une option pour accomplir la tâche. P> JPanel p = new JPanel(new GridLayout(0, 1));
p.add(new JLabel("One"));
p.add(new JLabel("Two"));
p.add(new JLabel("Three"));
Oh. cool merci! Je ne suis pas vraiment familier avec ceux-ci donc j'ai demandé ici. :)
Eh bien, ce que je voulais faire était d'abord, lisez une certaine fraction d'un fichier, puis affichez cette fraction dans un jlabel. Ce que j'ai pensé était de diviser la fraction en 3 parties, utilisez une étiquette pour chacun des trois. Ensuite, je veux pouvoir faire glisser la fraction, alors je pensais pouvoir utiliser un autre jlabel et placer les 3'mini Jlabels 'sur le grand jlabel. Je ne sais pas si cela fonctionnera cependant ..: |
C'est une question de mise en page. Vous pouvez le faire en utilisant la mise en page NULL (avec des emplacements codés dur) ou avec une mise en page personnalisée. P>
J'ai essayé de faire ça, mais ça ne marche pas pour moi. : c Peut-être que je vais faire quelque chose de mal. Je vais essayer de nouveau. merci omry!
Vous pouvez utiliser la fonction liste () pour obtenir une belle vidage de la hiérarchie actuelle du conteneur, devrait vous aider à déboguer votre problème.
super! Merci! Devrais-je rencontrer des problèmes à nouveau, puis-je le poster ici à nouveau?
Si c'est à peu près la même question, c'est sûr. Si votre question actuelle est résolue, acceptez l'une des réponses et si vous avez une autre question, créez simplement une nouvelle.
La réponse à votre question initiale est oui pour les raisons étant donné que tout composant peut être ajouté à un conteneur. P>
La raison pour laquelle vous ne voyez pas la deuxième étiquette est parce que par défaut, un jlabel utilise un gestionnaire de mise en page NULL et la taille de la deuxième étiquette est (0, 0), il n'y a donc rien à peindre. Donc, tout ce que vous avez à faire est de définir les limites de la deuxième étiquette et de partir. P>
Vous ne pouvez pas utiliser de gestionnaire de mise en page si vous souhaitez faire glisser des composants car dès que vous redimensionnez le cadre, etc., le gestionnaire de mise en page sera appelé et les composants seront repositionnés en fonction du gestionnaire de mise en page du composant. < / p>
Oh. Mais est-il possible d'avoir une étiquette sur une autre et être capable de faire glisser les deux étiquettes comme une? : |
Si l'auditeur de souris est ajouté à l'étiquette mère, tous les enfants seront également déplacés lorsqu'il est déplacé.
Oh..mais un ami dit que ce n'est pas possible .. dit que je devrais utiliser un panneau. wah. Maintenant im perdu. : |
C'est possible et je vous ai déjà dit comment le faire. Ses 4 lignes de code, 2 pour créer les étiquettes pour définir les limites de l'étiquette de l'enfant et le 4ème pour ajouter l'étiquette enfant à l'étiquette des parents. Cela devrait prendre environ 5 minutes pour le tester. Essayez-le et postez votre SSCCE si cela ne fonctionne pas. Si vous ne savez pas ce qu'est un SSCCE, recherchez le Web.
Vous pouvez utiliser un jlayeredpane code> et définir la bordure en aucune bordure. P>
Je suis désolé, c'est un moyen facile si vous utilisez un designer! Comme celui de Netbeans.
Vous pouvez ajouter les autres à l'aide de l'écart horizontal ou vertical (HGAP, VGAP) les attributs de la mise en page
JPANEL P = NOUVEAU JPANEL (NOUVEAU GRIDLAYOUT (2, 1, -40,0));
// Le 40 est le Hgap, le rend la même chose avec la hauteur de l'étiquette.
code> p>
désolé ... pourquoi cela ferait-il des sens ??