Nombre de ligne d'un jtextarea en java

Fermé
ricardo - 9 avril 2007 à 13:27
 ricardo - 12 avril 2007 à 18:57
bonjour,

j'utilise un jtextarea.
j'ai specifié les dimensions de ce jtextarea et je demande un retour a la ligne avec setLineWrap(true).
jusqu'ici tous fonctionne.
cependant quand je veux recurerer le nombre de lignes qui ont ete tapé avec la fonction getLineCount j'obtient toujours la valeur 1.

en fait je doit recuperer le nombre de ligne pour afficher le texte dans un autre jtextarea qui serait juste aux dimensions du texte.

comment puis je proceder pour recuperer le nombre de ligne?
merci d'avance
A voir également:

1 réponse

Utilisateur anonyme
9 avril 2007 à 14:00
Salut!

J'ai testé et la méthode getLineCount() me renvoie bien le nombre de lignes (en fait, le nombre de 'return' +1)

package linecounter;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;

/**
 * Created on 09-avr.-07
 * 
 * @author: HackTrack
 */

public class LineCounterDemo extends JFrame {
	private JTextArea textArea;

	private JLabel lineCount;

	public LineCounterDemo() {
		super("Demo du comptage des lignes dans un JTextArea");
		initializeComponent();
	}

	private void initializeComponent() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		JPanel mainPanel = new JPanel();
		mainPanel.setLayout(new BorderLayout());
		lineCount = new JLabel("Nombre de lignes = ");
		mainPanel.add(lineCount, BorderLayout.NORTH);
		textArea = new JTextArea();
		textArea.setLineWrap(true);
		textArea.addKeyListener(new KeyListener() {
			public void keyTyped(KeyEvent e) {

			}

			public void keyPressed(KeyEvent e) {

			}

			public void keyReleased(KeyEvent e) {
				int count = textArea.getLineCount();
				lineCount.setText("Nombre de lignes = " + count);
			}
		});
		textArea.setPreferredSize(new Dimension(320, 200));
		mainPanel.add(textArea, BorderLayout.CENTER);
		getContentPane().add(mainPanel);
	}

	public static void main(String[] args) {
		LineCounterDemo demo = new LineCounterDemo();
		demo.pack();
		demo.setVisible(true);
	}

}



;-)
HackTrack
3
c'est tous le pb
en fait j'ai fait en sorte que quand j'appui sur entree cela m'affiche le texte dans l'autre textarea.
ce que j'entend par nombre de ligne c'est combien de fois la fonction setlinewrap a ete utilisé enfin combien il y a de ligne a l'ecran pas combien de fois j'ai appuyé sur entrée.je sais pas trop si je suis clair.

j'ai trouvé une solution en utilisant setminimumsize dans mon jpanel.le 1er textarea s'agrandi au fur et a mesure puis je renvoi les dim lors de l'appui sur entrée.
le hic c'est que je n'arrive pas a donner le focus au textarea quand je clic sur le jpanel qui contient ce jtextarea(qui au debut est petit).
0
Utilisateur anonyme
10 avril 2007 à 11:00
Salut!

Question peut-être stupide, mais à quoi te sert le calcule du nombre de lignes dans ton JTextArea?

;-)
HackTrack
0
j'ai trouvé ma solution avec setminimumsize.
je donne le focus au textarea quand je clique sur le jpanel qui contient le jtextarea.
pour repondre a ta question:
je voulais le nombre de ligne afin de creer le nouveau jtextarea avec la taille adequat.
Dans mon appli il ne fo pas que je perde de place a l'ecran.
j'ecrit du texte dans une premiere zone et j'envoi le text dans des jtextarea qui s'affiche dans une parti de l'ecran.
dans ces dernier jtextarea avant de trouver la solution il y avait parfois des lignes vides.
0