8
votes

Comment implémenter une barre de titre de type Google-Chrome pour l'application Java SWT

text alt

J'ai hérité de développement d'une application Java / SWT fonctionnant uniquement sur Windows. Une des demandes de fonctionnalités que je dois avoir une portée est une barre de titre de type Google-Chrome à la place de la barre de titre Windows SWT Windows. Les onglets de l'application apparaissent au même niveau que les boutons de commande de la fenêtre.

Ma compréhension est que je devrai:

  • Écrivez un widget Windows capable de rendant les onglets de l'aspect personnalisé et de la gestion par opposition aux menus.
  • expose le widget Windows en tant que DLL à utiliser en Java via JNI
  • Écrivez un widget SWT personnalisé pour l'envelopper et exposer l'interface de gestion des onglets.

    J'ai beaucoup d'expérience avec la programmation Java, la programmation d'interface graphique avec Swing / AWT et la programmation non-GUI C #. La programmation GUI Windows et SWT sont neuves pour moi, donc je ne sais pas où commencer. Le meilleur que j'ai trouvé jusqu'à présent est un article de 2001 sur Écrire votre propre widget SWT .

    Mon plus grand inconnu est le meilleur moyen d'implémenter une fenêtre d'application Windows personnalisée.


2 commentaires

La façon dont je comprends bien, c'est qu'il serait presque impossible de le faire avec SWT car SWT est à peu près l'outil de graphique la plus plate-forme-agnostique, et donc le plus standardisé. Une interface graphique comme chrome nécessite une interface beaucoup plus directe avec le système d'exploitation, car elle n'utilise pas d'éléments d'interface graphique Standard OS. Vous devrez effectivement écrire votre propre gestionnaire d'onglet (et probablement de fenêtre).


@HALFBRIAN: En fait, Swing est la plus grande plate-forme agnostique car elle rend tous les composants en soi, tandis que SWT utilise les composants du système d'exploitation. Naturellement, cela ne fait pas le reste de votre commentaire moins vrai :)


3 Réponses :


8
votes

Vous pouvez créer une instance shell sans indicateur de titre, puis rendu manuellement des onglets de type Google-Chrome. De cette façon, vous pouvez même créer un Windows non rectangulaire


0 commentaires

2
votes

Lorsque vous traitez des choses qui ne sont pas encore dans la couche JNI de SWT, vous devriez toujours vous rappeler que vous pouvez rapidement prototyper des choses avec JNA . Lorsque le prototype de la JNA, vous pouvez également étendre l'interface native de SWT ou créer votre propre couche JNI distincte (il s'agit d'une approche qui a bien fonctionné pour moi un certain nombre de fois lors de la gestion des widgets SWT carbone / cacao)


0 commentaires

0
votes

Je recommande de créer une coquille sans garniture comme: xxx

Ceci créerait une coque sans la barre de titre. Ensuite, vous pouvez faire vos propres boutons de fermeture / minimiser / maximiser.

Voici un exemple qui reproche une barre de progression solitaire sans le titre de la barre de titre.

Entrez la description de l'image ici xxx < / p>


0 commentaires