La réponse courte est oui, comme un JLabel est un Container, de sorte qu'il peut accepter un Composant (un JLabel est une sous-classe de Component) à ajouter dans le JLabel à l'aide de la ajouter méthode:
Dans le code ci-dessus, le insideLabel est ajouté à la outsideLabel.
Cependant, visuellement, une étiquette avec le texte "Hello" s'affiche, donc on ne peut pas vraiment voir l'étiquette qui est contenue à l'intérieur de l'étiquette.
Donc, la question vient de ce que l'on veut vraiment accomplir par l'ajout d'une étiquette sur un autre label.
Edit:
De commentaires:
bien, ce que je voulais faire, c'était d'abord,
lire une certaine fraction à partir d'un fichier,
puis de les afficher en une fraction dans un
jlabel. ce que j'ai pensé de a à
diviser la fraction en 3 parties, puis
l'utilisation d'une étiquette pour chacun des trois.
puis la deuxième, je veux être en mesure de faire glisser
la fraction, alors j'ai pensé que je pourrais utiliser
un autre jlabel, et placer les 3'mini
jlabels " sur le big jlabel. je n'ai pas
savoir si cela va fonctionner, cependant..:|
Il ressemble à un devrait étudier comment utiliser les gestionnaires de disposition en Java.
Il ressemble à un GridLayout pourrait être une option pour accomplir la tâche.
JPanel p =newJPanel(newGridLayout(0,1));
p.add(newJLabel("One"));
p.add(newJLabel("Two"));
p.add(newJLabel("Three"));
Dans l'exemple ci-dessus, le Composite est fait pour utiliser un GridLayout que le gestionnaire de présentation, et il est dit de faire une ligne de JLabels.
oh. cool merci! je ne suis pas vraiment familier avec ces j'ai donc demandé ici. 🙂 eh bien, ce que je voulais faire, c'était d'abord, la lecture d'une certaine fraction à partir d'un fichier, puis de les afficher en une fraction dans un jlabel. ce que j'ai pensé était de diviser la fraction en 3 parties, puis l'utilisation d'une étiquette pour chacun des trois. puis la deuxième, je veux être en mesure de faire glisser la fraction, alors j'ai pensé que je pourrais utiliser un autre jlabel, et placer les 3'mini jlabels " sur le big jlabel. je ne sais pas si cela va fonctionner, cependant..:| ressemble à ce qui se passe au travail..merci, coobird! 🙂
La réponse à votre question est oui pour les raisons que tout Composant peut être ajouté à un Conteneur.
La raison pour laquelle vous ne voyez pas le second label est parce que par défaut un JLabel utilise une valeur null directeur de disposition et de la taille de la deuxième étiquette est (0, 0) donc il n'y a rien à la peinture. Donc tout ce que vous devez faire est de définir les limites de la deuxième étiquette et vous allez loin.
Vous ne pouvez pas utiliser le gestionnaire de configuration si vous souhaitez faire glisser les composants autour de parce que dès que vous redimensionnez l'image etc, la mise en page du gestionnaire sera invoqué et les composants seront repositionnés en fonction de la disposition du gestionnaire du composant.
oh. mais est-il possible d'avoir une étiquette sur le dessus de l'autre, et être en mesure de faire glisser les deux étiquettes? 😐 Si l'écouteur de souris est ajouté à la mère de l'étiquette, puis tous les enfants vont également être déplacé lorsqu'il est déplacé. oh..mais un ami m'a dit qu'il n'est pas possible.. a dit que je devrais utiliser un panneau. wah. maintenant je suis perdu. 😐 Il est possible et j'ai déjà dit comment le faire. Ses 4 lignes de code, 2 pour créer les étiquettes de définir les limites de l'enfant de l'étiquette et de la 4e à ajouter de l'enfant à l'étiquette de la mère de l'étiquette. Il devrait prendre environ 5 minutes pour le tester. Essayez-le et postez vos SSCCE si cela ne fonctionne pas. Si vous ne savez pas ce qu'est un SSCCE est alors de rechercher sur le web.
c'est une question de mise en page.
vous pouvez le faire en utilisant null mise en page (avec codé en dur lieux) ou avec une mise en page personnalisée.
J'ai essayé de faire cela, mais il ne fonctionne pas pour moi. :c peut-être que je suis en train de faire quelque chose de mal. je vais essayer de nouveau. grâce Omry! vous pouvez utiliser la fonction list() pour obtenir une belle image de l'actuelle hiérarchie de conteneurs, devrait vous aider à déboguer votre problème. super! merci! dois-je rencontre à nouveau des problèmes, je peux le poster ici encore? si c'est à propos de la même question, c'est sûr. si votre question est résolue, accepter l'une des réponses et si vous avez une autre question, il suffit de créer un nouveau.
vous pouvez ajouter les mettre au-dessus les uns des autres en utilisant l'horizontale ou à la verticale écart (hgap,vgap) les attributs de la mise en page
JPanel p = new JPanel(new GridLayout(2, 1,-40,0));
//the 40 is the hgap , make it the same with the label height .
La réponse courte est oui, comme un
JLabel
est unContainer
, de sorte qu'il peut accepter unComposant
(unJLabel
est une sous-classe deComponent
) à ajouter dans leJLabel
à l'aide de laajouter
méthode:Dans le code ci-dessus, le
insideLabel
est ajouté à laoutsideLabel
.Cependant, visuellement, une étiquette avec le texte "Hello" s'affiche, donc on ne peut pas vraiment voir l'étiquette qui est contenue à l'intérieur de l'étiquette.
Donc, la question vient de ce que l'on veut vraiment accomplir par l'ajout d'une étiquette sur un autre label.
Edit:
De commentaires:
Il ressemble à un devrait étudier comment utiliser les gestionnaires de disposition en Java.
Un bon endroit pour commencer serait À L'Aide De Gestionnaires De Disposition et Un Guide Visuel pour les Gestionnaires de Mise en page, à la fois de La Java Des Tutoriels.
Il ressemble à un
GridLayout
pourrait être une option pour accomplir la tâche.Dans l'exemple ci-dessus, le
Composite
est fait pour utiliser unGridLayout
que le gestionnaire de présentation, et il est dit de faire une ligne deJLabel
s.eh bien, ce que je voulais faire, c'était d'abord, la lecture d'une certaine fraction à partir d'un fichier, puis de les afficher en une fraction dans un jlabel. ce que j'ai pensé était de diviser la fraction en 3 parties, puis l'utilisation d'une étiquette pour chacun des trois. puis la deuxième, je veux être en mesure de faire glisser la fraction, alors j'ai pensé que je pourrais utiliser un autre jlabel, et placer les 3'mini jlabels " sur le big jlabel. je ne sais pas si cela va fonctionner, cependant..:|
ressemble à ce qui se passe au travail..merci, coobird! 🙂
OriginalL'auteur coobird
La réponse à votre question est oui pour les raisons que tout Composant peut être ajouté à un Conteneur.
La raison pour laquelle vous ne voyez pas le second label est parce que par défaut un JLabel utilise une valeur null directeur de disposition et de la taille de la deuxième étiquette est (0, 0) donc il n'y a rien à la peinture. Donc tout ce que vous devez faire est de définir les limites de la deuxième étiquette et vous allez loin.
Vous ne pouvez pas utiliser le gestionnaire de configuration si vous souhaitez faire glisser les composants autour de parce que dès que vous redimensionnez l'image etc, la mise en page du gestionnaire sera invoqué et les composants seront repositionnés en fonction de la disposition du gestionnaire du composant.
Si l'écouteur de souris est ajouté à la mère de l'étiquette, puis tous les enfants vont également être déplacé lorsqu'il est déplacé.
oh..mais un ami m'a dit qu'il n'est pas possible.. a dit que je devrais utiliser un panneau. wah. maintenant je suis perdu. 😐
Il est possible et j'ai déjà dit comment le faire. Ses 4 lignes de code, 2 pour créer les étiquettes de définir les limites de l'enfant de l'étiquette et de la 4e à ajouter de l'enfant à l'étiquette de la mère de l'étiquette. Il devrait prendre environ 5 minutes pour le tester. Essayez-le et postez vos SSCCE si cela ne fonctionne pas. Si vous ne savez pas ce qu'est un SSCCE est alors de rechercher sur le web.
OriginalL'auteur camickr
c'est une question de mise en page.
vous pouvez le faire en utilisant null mise en page (avec codé en dur lieux) ou avec une mise en page personnalisée.
vous pouvez utiliser la fonction list() pour obtenir une belle image de l'actuelle hiérarchie de conteneurs, devrait vous aider à déboguer votre problème.
super! merci! dois-je rencontre à nouveau des problèmes, je peux le poster ici encore?
si c'est à propos de la même question, c'est sûr. si votre question est résolue, accepter l'une des réponses et si vous avez une autre question, il suffit de créer un nouveau.
OriginalL'auteur Omry Yadan
vous pouvez utiliser un
JLayeredPane
et de l'ensemble de la frontière de Pas de Frontière.OriginalL'auteur Saher Ahwal
vous pouvez ajouter les mettre au-dessus les uns des autres en utilisant l'horizontale ou à la verticale écart (hgap,vgap) les attributs de la mise en page
JPanel p = new JPanel(new GridLayout(2, 1,-40,0));
//the 40 is the hgap , make it the same with the label height .
OriginalL'auteur Ahd Radwan