SetFocusable méthode ou la Focalisation de Composants Java
Je suis tombé sur ce code:
public class Board extends JPanel implements ActionListener{
public Board(){
setFocusable(true);
}
}
Si je setFocusable pour être vrai, exactement ce que fait la méthode de faire l'objet d'un Composite? Qu'est-ce que la notion de composant en cours de mise au point?
Basé sur l'API Java, cette méthode est situé dans la Classe de Composant, la super classe de Composite. La méthode de description des états "Définit la focusable état de ce Composant à la valeur spécifiée. Cette valeur remplace le Composant par défaut de focalisation." Cette description semble bien trop technique et du jargon pour moi(qui viennent de terminer une classe Java en été). Parfois, je pense que ces description de la méthode n'ont pas été écrites pour toutes les personnes ayant différents niveaux de connaissances de Java. Quelqu'un peut-il expliquer la description de la méthode de la mise-homme?
OriginalL'auteur Nicholas | 2012-12-30
Vous devez vous connecter pour publier un commentaire.
La
focusable
drapeau indique si un composant peut obtenir le focus si il est demandé de le faire. Le Composite composant peut recevoir le focus par défaut, de sorte que rien ne sera changé quand vous le mettez surtrue
.Un composant qui n'est pas focusable ne pouvez pas obtenir le focus.
Un exemple
Disons que vous avez mis en place un dialogue avec plusieurs champs de texte et que vous souhaitez que l'utilisateur d'entrer du texte. Lorsque l'utilisateur commence à taper, un champ de texte doit avoir le focus de l'application: il sera le champ qui reçoit les entrées au clavier.
Lorsque vous implémentez un accent traversal (un moyen pratique pour l'utilisateur de passer d'un champ de texte à l'autre, par exemple à l'aide de la
tab
bouton), l'utilisateur peut "sauter" vers le prochain champ de texte. L'application va essayer de prendre l'accent pour le champ suivant pour le préparer à recevoir du texte. Lorsque le champ n'est pas focusable, cette demande sera refusée et le champ suivant va être testée. Par exemple, vous ne voulez pas une étiquette pour obtenir le focus, car vous ne pouvez pas saisir de texte.La focusable indicateur est défini à
true
par défaut dans leComponent
classe. Lorsque vous construisez un objet dérivé de laComponent
classe (par exemple, lorsque vous construisez votreJPanel
), le constructeur de laComponent
classe est appelée et définit la valeur par défaut peut recevoir le focus drapeau àtrue
.Les classes dérivées qui souhaitent remplacer cette valeur par défaut peut appeler la méthode
setFocusable
de changer cette valeur par défaut, comme vous l'avez fait dans votre exemple.Noter que setFocusable n'est pas définie pour l'objet en lui-même, il donne simplement la possibilité de potentiellement gagner le focus à l'élément.
J'ai mis à jour la réponse. J'espère que cet exemple sera plus clair. Normalement, vous devez donner un composant de la capacité de gain de la mise au point, si vous avez besoin d'être en mesure de faire quelque chose avec elle. Notez que setFocusable n'est pas définie pour l'objet en lui-même, il donne simplement la possibilité de potentiellement gagner le focus à l'élément.
Maintenant, l'exemple le rend plus clair pour moi maintenant que j'ai lu comment il est appliqué dans une certaine situation. Merci! Je vais tester cette méthode sur JTextFields.
vous avez oublié d'accepter la réponse. 🙂
OriginalL'auteur Modus Tollens
setFocusable() est en fait une méthode de la Composant classe en swing.
Il permet au Composant(dans votre cas,JPanel qui s'étend Composant) pour obtenir le pouvoir de se concentrer. Il ne fait pas de définir la Composante de se concentrer. il indique simplement si le Composant peut être porté ou pas,car il contient un booléen en paramètre à passer.
OriginalL'auteur SouravOrii