Chaque fois que j'essaie d'ajouter ma classe séparée qui contient toutes mes entrées clés à mon JFrame, Eclipse me dit de faire ceci: frame.add(frame, new KeyInput());
, qui renvoie l'erreur :KeyListener me donne toujours une erreur en essayant de l'ajouter à mon JFrame
Exception in thread "main" java.lang.IllegalArgumentException: adding container's parent to itself
. Je comprends cette erreur et d'où il vient:
frame.add(frame, new KeyInput());
^^^^^
, mais si je prends le composant de cadre, je reçois l'erreur:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method add(Component) in the type Container is not applicable for the arguments (KeyInput)
Ce que je ne comprends pas, mais je reçois la Gist: Eclipse a détecté une erreur réelle.
Pourquoi essayez-vous d'ajouter un composant à lui-même? Je voudrais examiner de plus près la documentation de l'API pour la méthode 'add'. Je considérerais aussi l'API [Key Bindings] (https://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html) comme une alternative à KeyListener, car elle résout le problème principal. focus questions liées – MadProgrammer
@MadProgrammer comme je l'ai mentionné, sans le composant, et le cadre est le seul que j'ai, je reçois une erreur. Et j'ai déjà regardé l'API Key Bindings, et je n'ai aucune idée de comment les utiliser. –
La question demeure, pourquoi essayez-vous d'ajouter un composant à lui-même? Cela n'a aucun sens et, comme Java le dit, c'est une opération illégale - Avez-vous lu [Comment écrire un auditeur clé] (https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html)? – MadProgrammer