2009-09-30 5 views
0

J'ai une application autonome dans laquelle j'ai un Jtable. Dans ma table, lorsque je tape le texte, la hauteur de Textarea devrait augmenter dynamiquement avec le texte. Comment puis-je faire ceci? Quelqu'un peut-il m'aider avec un exemple comment faire cela?Comment faire pour augmenter la hauteur de Textarea dans jtable dynamiquement

Remerciant Vous Chaitanya

+0

Le comportement dynamique est-il déclenché en changeant la taille/le type de police ou en tapant du texte multiligne (par exemple, taper/détecter un caractère \ n ')? –

+0

son en tapant un texte multiligne, la hauteur textarea devrait augmenter dynamiquement – chaithu

Répondre

1

Il ne montre pas clairement votre question - utilisez-vous un JTextArea ou un TextArea? La raison pour laquelle il est ambigu est que les gens ne mélangent généralement pas les structures légères et lourdes (par exemple, mettent des composants awt dans un composant pivotant).

Si c'est un JTextArea, je pense que votre meilleur pari est probablement d'utiliser un DocumentListener.

DocumentListener myListener = ??; 
JTextArea myArea = ??; 
myArea.getDocument().addDocumentListener(myListener); 

http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html#doclisteners

Je pense que vous devez faire est d'écouter les changements, et à chaque fois que quelque chose est ajouté au fichier, appelez la méthode getLineCount(), et la comparer avec les getRows() méthode. Si le seuil est dépassé, utilisez un appel à setRows() pour augmenter le nombre de lignes.

Vous aurez probablement besoin de déposer une sorte de changement d'interface utilisateur, en particulier pour propager jusqu'à la JTable.

+0

Si vous vouliez dire TextArea, il ne semble pas que l'API TextArea vous fournisse un moyen d'interroger combien de lignes il y a actuellement dans le TextArea. Si c'est le cas, il vaudrait peut-être mieux utiliser un JTextArea (que je recommanderais malgré tout) et utiliser la stratégie que j'ai décrite plus haut. – I82Much

Questions connexes