2010-12-03 26 views
0

Je suis en train de concevoir un formulaire à remplir à l'écran, et je pense qu'il est logique de le coller ensemble comme une collection de zones de texte. Je note dans la documentation de JTextArea qu'une zone de texte peut être subdivisée en lignes et en colonnes, mais je ne trouve aucune méthode qui semble traiter le placement de texte directement dans une cellule ligne/colonne spécifique dans une zone de texte.Java JTextArea Question

Existe-t-il de telles méthodes ou existe-t-il un autre composant de texte qui fonctionnerait mieux à cette fin?

Merci d'avance pour toute idée.

John Doner

Répondre

0

Un peu hackish, mais vous pouvez insérer (ligne-1) et des sauts de ligne caractères espace (colonne 1) avant votre contenu. Bien sûr, cela ne fonctionnerait que sur une zone de texte précédemment vide. Cependant, vous pouvez étendre cette approche de sorte que vous n'insérez des caractères que si nécessaire, et que vous comptiez simplement les caractères déjà existants. C'est-à-dire, pour aller à une rangée, vous sautez la première ligne-1 nouvelles lignes. Ensuite, dans cette ligne, vous sautez la première colonne-1 caractères.

S'il n'y a pas suffisamment de caractères de nouvelle ligne ou de caractères dans la zone de texte, vous en ajoutez d'autres à la fin du texte. Cependant, il devient plus compliqué si votre contenu de texte contient lui-même des retours à la ligne.

C'est faisable, mais ça va être moche.

+0

comme il s'est avéré, j'ai simplement collé beaucoup de zones de texte ensemble, avec un espacement très étroit entre alors de sorte que le formulaire sur l'écran ressemble à la forme de papier qu'il remplacera. Les zones de texte contiennent toutes une ou plusieurs étiquettes, et l'utilisateur clique simplement dans la bonne case au bon endroit (certaines zones ont plus d'une étiquette pour plus d'un type de données), et entre des données. Le processus de regroupement de ces lignes de texte individuelles en un seul flux de texte est très répétitif, si rapide, et je stocke cette chaîne dans un fichier. Rappelant qu'il est également fastidieux, mais répétitif. –

1

Si vous voulez une table, il y a JTable mais il est un peu plus compliqué. (Here is a tutorial) Sinon, vous pouvez mettre vos JTextAreas dans une mise en page tels que GridLayout

+0

Je suggère de créer un lien vers une version plus récente de l'API. – jzd

+1

@jzd - merci - a changé –

0

Les valeurs de ligne et de colonne sont simplement utilisées pour donner à la zone de texte une taille préférée.

Je ne vois pas l'intérêt d'essayer de définir du texte sur une ligne spécifique lors de la création d'un formulaire. En général, les formulaires sont conçus avec des paires de champs étiquette/texte, de sorte que l'utilisateur sache où entrer le texte.

Si votre zone de texte est destinée à la sortie, vous ajoutez simplement de nouvelles lignes lorsque vous souhaitez afficher du texte sur une ligne différente.

Forcer une zone de texte à insérer du texte sur une ligne/colonne donnée n'est certainement pas la manière dont elle a été conçue pour être utilisée.

Je ne comprends pas la véritable exigence, donc je ne peux pas faire d'autres suggestions.