ajout de plus de les étiquettes en java
Bonjour amis programmateurs! Je suis en train d'ajouter deux JLabel pour JFrame mais la deuxième méthode add ajouté l'étiquette semble avoir remplacé ma première méthode add. J'ai essayé de résoudre ce problème en utilisant 2 les différentes variables de l'étiquette et de l'aide setLocation méthode de mise à disposition de différents point de coordonnées pour chaque étiquette. Mais je n'arrive pas à le résoudre. Pourquoi ne puis-je pas ajouter deux étiquettes dans mon programme? En passant, je ne reçois pas toutes les erreurs. semble être plus d'une erreur de logique, je n'arrive pas à résoudre.
Voici mon code actuel:
import javax.swing.*;
public class test {
private static JLabel label;
private static JLabel label1;
public static void main(String[] args){
initializeLabel();
initializeImage();
initializeFrame();
}
private static void initializeLabel(){
label = new JLabel();
label.setText("hi");
label.setLocation(54,338);
}
private static void initializeImage(){
label1 = new JLabel();
label1.setText("sss");
label1.setLocation(55, 340);
}
private static void initializeFrame(){
JFrame frame = new JFrame();
frame.add(label1);
frame.add(label);
frame.setVisible(true);
}
}//class
Envisager d'utiliser des mises en page, Luke.
OriginalL'auteur Nicholas Kong | 2011-11-08
Vous devez vous connecter pour publier un commentaire.
Changer votre code de la manière suivante.
Veuillez étude de plus sur swing disposition ici: Un Guide Visuel pour les Gestionnaires de Mise en page
Pour plus d': Création d'une interface graphique Avec des JFC/Swing
FlowLayout
. J'ai décidé de votre post, avec le commentaire de code 'pour l'instant' et 2 liens pour le tuto fait à la hauteur. +1merci pour les commentaires. compte tenu de l'exemple de code est écrit dans la méthode statique. C'est montrer à la personne de l'immaturité qui essaie de l'apprendre java & swing. Ma pensée a été, au lieu d'expliquer tous les détails, je dois lui montrer comment faire les choses dès la première fois. Comme il l'a été en mesure de venir le long de cette mesure, de sorte que doit être en mesure de passer à côté de l'obstacle pour vous. Il a juste besoin de quelques conseils. C'est ce que je pensais lorsque j'ai donné la réponse. C'est tout...
J'ai aussi remarqué sa question précédente sur les entrées en phase nationale, de sorte qu'il est bon élève, je crois, qui a juste besoin d'une bonne direction. Il peut trouver sa solution.
Pourquoi ne peopele pense que leurs exemples de code sont mieux que le Swing tutoriel exemples? Ce n'est pas une bonne façon d'utiliser un FlowLayout. Rarement serait-il possible de définir le contenu du volet mise en page pour être un FlowLayout. Si vous suivez l'exemple de tutoriel, vous trouverez qu'il crée un panneau séparé avec un FlowLayout et ajoute ensuite le panneau de l'image, de façon à maintenir le BorderLayout de sorte que vous pouvez ajouter d'autres composants. Aussi, l'exemple utilise invokeLater(...). Alors laissez les tutoriels enseigner aux gens la bonne approche de codage (quand il y a des cas) plutôt que d'essayer de créer votre propre qui sont incomplètes.
OriginalL'auteur Kowser
Lire sur Gestionnaires De Disposition. La mise en page par défaut du gestionnaire d'un cadre est le BorderLayout. Votre code est d'ajouter les deux étiquettes au CENTRE de la mise en page. Ce n'est pas possible. Chaque emplacement sur le BorderLayout ne peut contenir qu'un seul élément (il pourrait être un Composite avec d'autres composants).
Vous devez utiliser un autre gestionnaire de présentation. Sans savoir exactement à vos exigence, il est difficile de dire laquelle le gestionnaire de configuration à utiliser.
Aussi, se débarrasser de toutes ces méthodes statiques. Le Swing tutoriel a beaucoup d'exemple qui va vous donner une meilleure idée de la façon de structurer votre programme.
OriginalL'auteur camickr
La disposition par défaut de
JFrame
estBorderLayout
, et la position par défaut estBorderLayout.CENTER
.En effet, la deuxième étiquette remplace la première.
OriginalL'auteur trashgod
Ajouter
frame.setLayout(new FlowLayout());
après la construction de l'image.OriginalL'auteur wannik