10 Java Swing Interview Questions et réponses

1) Qu'est-ce que Event-Dispatcher-Thread (EDT) dans Swing?

Le thread Event Dispatcher ou EDT est un thread spécial dans Swing et AWT. Le thread Event-Driven est utilisé pour afficher des graphiques et écouter les événements dans Swing. Vous obtiendrez un point bonus si vous êtes capable de mettre en évidence cette opération fastidieuse comme la connexion à la base de données, l'ouverture d'un fichier ou la connexion au réseau ne doit pas être effectuée sur le thread EDT car cela pourrait bloquer l'interface graphique. en consommant la nature de ces opérations à la place, elles devraient être faites sur un thread séparé et EDT peut juste être utilisé pour engendrer ces threads sur un clic de bouton ou un clic de souris.

2) Est-ce que Swing est thread-safe? Que voulez-vous dire par swing n'est pas thread-safe?

Cette question d'entrevue swing devient très populaire de nos jours. Bien que ce soit assez basique, de nombreux développeurs ne comprennent pas le problème de sécurité des threads dans Swing. Comme les composants Swing ne sont pas thread-safe, cela signifie que vous ne pouvez pas mettre à jour ces composants dans un thread autre que Event-Dispatcher-Thread.

Si vous le faites, vous verrez un comportement inattendu, par ex. gel de l'interface graphique en raison de l'impasse de valeurs incorrectes, etc. Un intervieweur de temps demandera également quelles sont les méthodes thread-safe dans l'API Swing? Ce sont les méthodes qui peuvent être appelées en toute sécurité à partir de n'importe quel fil et il n'y en a que quelques-unes. repaint () et revalidate (). Voir cet article pour plus d'informations sur Swing et thread-safety.

3) Quelles sont les différences entre Swing et AWT?

L'une des questions classiques d'entrevue de swing de Java et la plupart du temps posées sur des entrevues téléphoniques. Il y a quelques différences entre Swing et AWT:

4) Pourquoi les composants Swing sont appelés composants légers?

Une autre question d'entrevue de swing Java populaire, je suppose que le plus ancien qui vient généralement comme un suivi de la question précédente en fonction de votre réponse fournie. Puisque les composants AWT sont associés à une ressource d'écran native, ils sont appelés composants lourds alors que les composants Swing utilisent la ressource d'écran d'un ancêtre au lieu d'avoir les leurs et c'est pourquoi ils sont appelés composants légers ou légers. Voir ici pour plus de questions d'entrevue de base AWT en Java.

5) Quelle est la différence entre invokeAndWait et invokeLater?

Cette question d'entrevue swing est posée différemment à différents points. Un intervieweur demande comment mettre à jour le composant swing d'un thread autre que EDT au lieu de demander directement la différence entre la méthode invokeAndWait () et la méthode invokeLater () de l'API Swing.

6) Écrire du code pour JTable avec un éditeur de cellule personnalisé et un rendu de cellule personnalisé?

Maintenant, la partie la plus difficile des interviews Swing, les questions posées dans cette partie des entretiens Swing est principalement sur l'écriture de code et la vérification de l'expérience du développeur de développement API et GUI et la compréhension du concept clé de code de swing, etc.

7) Comment gérez-vous l'ouverture de la base de données, du fichier ou de la connexion réseau en cliquant sur un bouton?

Celui-ci est l'une des questions faciles d'entrevue de swing de Java. L'intervieweur s'intéresse à savoir si vous connaissez le principe de base du développement de Java GUI ou non. La réponse est, vous ne devriez pas faire cette opération dans le thread EDT au lieu de générer un nouveau thread à partir de ActionListener ou bouton et désactiver le bouton jusqu'à ce que l'opération soit terminée pour éviter de soumettre à nouveau la demande.

8) Ecrire le code pour imprimer la mise en page suivante (principalement concentré sur la mise en page GridBag)?

Après JTable, le deuxième sujet favori des intervieweurs swing est GridBagLayout. Le GridBagLayout dans le swing est le plus puissant, mais en même temps, la mise en page la plus complexe et une expérience claire et l'expertise autour de GridBagLayout est souhaitée pour le développement de l'interface graphique Swing pour les systèmes de négociation.

9) Prédiction de la sortie du code?

Ceci est une autre catégorie de questions d'entrevue Swing demandé dans IB si elles vont vous donner du code et a demandé quelle serait la sortie, à quoi ressemblera l'interface graphique. Ce type de question est basé sur la façon dont vous comprenez et visualisez le code.

10) La question autour de JList est comme Créer un composant JList qui devrait contenir toutes les classes d'actifs comme Stocks, Futures, Options et FX etc sous la forme de String. Mais la contrainte est que le JList doit toujours être trié dans l'ordre croissant, sauf que tous les actifs qui commencent par "Electronic trading" apparaissent en haut?

Ce sont d'excellentes questions d'entrevue Java Swing qui sont basées sur la tâche du monde réel et se concentre sur le composant JList, le tri et la personnalisation du modèle JList. Pour le tri, vous pouvez utiliser comparable en Java et en personnalisant le modèle JList vous pouvez afficher le contenu tel que demandé. Une fois que vous avez répondu avec succès à cette question, il peut y avoir un suivi sur la personnalisation de la couleur de la cellule, etc., ce qui peut être fait en personnalisant le moteur de rendu.