Une interface utilisateur en mode pour l’AWT Java

Original: http://bmsi.com/tuipeer/

Viewable With Any Browser Should we end government education?

 

Dernière mise à jour le 1 mars 2015

Copyright (C) 2000,2002 Stuart D. Gathman
Permission vous est donnée de copier, distribuer et / ou modifier ce document selon les termes de la GNU Free Documentation License, Version 1.3 ou toute version ultérieure publiée par la Free Software Foundation; sans sections inaltérables, sans texte de couverture, et aucun de quatrième de couverture. Une copie de la licence est inclus dans la section intitulée “GNU Free Documentation License”.
GNU Free Documentation License pour cette documentation


 

Qu’est ce que ça fait?
JDK 1.0 et 1.1 vous permettent de fournir enfichable regarder et se sentir en implémentant les interfaces dans java.awt.peer. Le programme de l’emballage et tuipeer TUIAWT Java fournir un TUI (texte User Interface) Look and Feel. En outre, il prend en charge plusieurs instances de java.awt.Toolkit, une condition préalable pour une JVM multi-utilisateur.

Le résultat est que la même demande code octet peut avoir une interface graphique ou une interface TUI selon le cas Toolkit est utilisé.

Une capture d’écran de Teikade en mode TUI.
Une capture d’écran de Teikade en mode graphique.

Comment ça marche?
TUIAWT fonctionne en envoyant des commandes par les pairs à un programme de pairs à distance et recevoir des événements de l’interface utilisateur du programme d’homologue distant. La communication avec le programme de pair à distance se déroule sur une connexion de socket. Le programme de pair à distance peut également mettre en œuvre une interface graphique regarder et sentir, et en fait, pourrait être écrit en Java. Bien que cela semble redondant, les avantages sont au moins deux fois:

  • La sécurité est renforcée par l’isolement à partir d’un client (éventuellement non fiable).
  • Cela permet à plusieurs instances de boîte à outils pour une JVM multi-utilisateur sur un serveur – sans avoir à réécrire AWT.

IBM mise en œuvre de ce concept et l’a rendu disponible sur leur site AlphaWorks comme «AWT à distance pour Java”.

  • Un schéma de principe du concept.
  • Schéma de principe d’appuyer sur un bouton avec TUIAWT.
  • Schéma de mettre le texte d’un bouton avec TUIAWT.

Le régime TUI AWT a été décrit dans un article pour le Sep97 Dr. Dobbs Journal.

Peut Gui code d’exécution non modifié avec TUIAWT?
Code de l’interface graphique qui utilise LayoutManager correctement et ne tire pas de graphiques générales sur toile et composants de panneaux fonctionneront très bien.

  • Une capture d’écran de TextEdit.java en mode TUI. Je l’ai modifié TextEdit.java à enlevé la taille de l’image câblé pour les décorations. La source
  • Une capture d’écran de Teikade en mode TUI. Aucune modification n’a été nécessaires pour rendre Teikade fonctionner en mode TUI! Notez que les graphiques simples rectangulaires utilisées dans le moniteur de mémoire Teikade sont intelligibles en mode TUI. L’ombrage 3D, cependant, a pour effet d’effacer une partie du graphique.
  • Une capture d’écran de Teikade en mode graphique. Page d’accueil Teikade

Quelle version de JDK ne fonctionne TUI AWT avec?
La version de tuipeer ne supporte pas encore Java 2. Il a été testé avec JDK1.1.6 et jdk1.1.8. Java 2 pauses java.awt.Toolkit par aspersion références câblés à sun.awt.SunToolkit dans tout le code de AWT. Il n’y a aucun moyen documenté pour fournir une implémentation de AWT alternent dans Java 2 sans avoir à réécrire l’ensemble des paquets. Il serait possible d’inverser ingénieur et étendre sun.awt.SunToolkit – et peut-être je vais faire après avoir soumis un rapport de bogue.

Dans l’intervalle, Rob Pitman a écrit une source mise en œuvre compatible partielle de AWT et Swing qui peut être utile. Alors que vous ne pouvez pas utiliser les mêmes fichiers binaires de classe à la fois GUI et TUI, il ne vous permettent de recompiler vos applications pour TUI en changeant ‘java.awt »à« charva.awt »et« javax.swing »à« charva.swing’ dans vos déclarations d’importation et recompilation.

Ne fonctionne TUIAWT Swing?
Le concept TUI pourrait travailler sous balançoire seulement en utilisant une TUI L & F pour Swing. Même alors, les applications Swing ont tendance à être beaucoup plus dépendant de vrais graphiques, donc cela semble moins utile.

Quels Windoze IDE gérer java.awt.LayoutManager?
IDEs Windoze populaires tels que supplanter et de travail de Visual Café avec coordonnées absolues de pixels. Il n’y a pas de soutien de LayoutManager personnalisé et même LayoutManagers standard ne fonctionne pas correctement en mode de conception. Utilisation de coordonnées absolues cause des problèmes lors du changement des interfaces graphiques ainsi qu’avec TUIAWT. Je l’ai essayé remplacent 1.0 et VC2.0. Ces deux produits ont d’autres traits fins, mais un soutien adéquat de LayoutManager est pas un d’entre eux. On m’a dit que JBuilder et le travail de Visual Age correctement avec LayoutManager, mais ces produits nécessitent 64M de RAM ou plus et un P200 dont je ne ai pas, donc je ne les ai pas essayé.

Mise à jour: Maintenant que je suis un P200 avec 64Mo de RAM, JBuilder et Visual Age exigent maintenant au moins 128M de RAM et 400 MHz. Les anciennes versions ne sont plus disponibles. Des remarques similaires appliquent à Forte for Java de Sun.

Comment puis-je essayer TUIAWT?
Voir la page de téléchargement.

L’approche de Java de 99%
Une autre façon à la peau du chat de TUIAWT est de développer un pur Java malédictions utilisant JavaComm ou Sockets et distribuer avec le processus C ++. Si quelqu’un commence à un tel projet, faites le moi savoir – parce que je l’ai commencé sur une mise en œuvre de 99% Java TUIAWT qui utilise la base de données terminfo. Une version prototype peut être trouvée sur la page de téléchargement.

Mis en œuvre sont Étiquette, Button, Fenêtre, Frame. MenuComponents, toile, panneau, et de dialogue sont dans la prochaine mise à jour. A noter que la borne de sortie est non optimisée. Un schéma stdscr / curscr sera jugé. Un but du projet est de maintenir l’utilisation du CPU raisonnable, même avec l’interprète.

Bien qu’il existe un certain nombre d’avantages pour le processus distinct – je serais heureux d’y renoncer pour se débarrasser du cauchemar de portage. (Les problèmes de portage sont causées en utilisant le niveau de malédictions terminfo – voir le portage des notes, et de l’absence d’une bibliothèque standard C ++ à l’époque.) En outre, le processus distinct pourrait toujours être une JVM!

Please suggestions E-mail de fonctionnalités, les bugs à [email protected]


Valid HTML 3.2!

Comments are closed.