J'écris une application console en Java. Il est similaire à un client de chat: Les entrées et les sorties sont effectuées de manière asynchrone. Le problème est que si une sortie est faite pendant que l'utilisateur est en train de taper, les lignes seront mélangées à l'écran.Conserver les entrées/sorties séparées dans l'application de la console Java
Je cherche une solution qui me permette d'avoir une zone d'entrée séparée de la zone de sortie. En ce moment j'utilise un thread supplémentaire qui interroge un BufferedReader sur System.in.
Le programme doit être exécuté sur un serveur Linux et accessible via une session SSH. Donc, tous les conseils qui ne fonctionnent que dans cet environnement sont bien.
Y a-t-il des bibliothèques de haut niveau capables de faire cela? Ou y a-t-il une astuce intelligente utilisant les codes terminaux/ANSI? Les codes ANSI s (save cursor) et r (restore cursor) peuvent être utiles mais comment savoir où sauter pour faire la sortie et comment gérer le défilement?
bien que j'aime la bibliothèque en raison de la nostalgie. il a sa poussée. mais c'est une bibliothèque de widgets complète. vous pouvez prendre n'importe quelle bibliothèque de widgets (par exemple AWT, SWT) et créer deux zones de texte à cet effet. S'il n'y a pas de petit extrait sur la façon de séparer in et out, je ne vois pas l'intérêt d'utiliser jcurses – benez
@kewlbfy OP avait besoin d'une solution qui fonctionne dans un terminal. Les bibliothèques de widgets que vous mentionnez ne fonctionnent pas dans ce contexte. –