2009-11-06 2 views
2

Je veux charger une zone de texte en Java à partir d'un fichier texte. Cela semble simple mais la grande question est comment retourner à la fin ajouter des nouvelles lignes lorsque le texte se rapprocher du bord de la boîte, par exemple.Comment faire pour envelopper de longues lignes de texte dans un TextBox Java?

       | 
           | 
           | 
Java java java Java java java |Java java java Java java java 
           | 
           | 

Permet de prétendre la ligne représente le bord de la zone de texte. Ça déborde.

Comment faire?

Java java java Java java java| 
Java java java Java java java| 
Java java java Java java java| 

Actuellement, je suis en utilisant txtWords.setTxt(list); Je ne pense pas que ce soit correct. Quelqu'un a-t-il une solution? Apprenez-le!

Répondre

7

En fait, vous voulez utiliser la propriété setLineWrap comme suit:

JTextArea t = new JTextArea(); 
t.setText(yourText); 
t.setLineWrap(true); 
0

Jetez un oeil à cet exemple (tiré here)

import java.awt.BorderLayout; 
import java.awt.Dimension; 

import javax.swing.JFrame; 
import javax.swing.JSplitPane; 
import javax.swing.JTextArea; 

public class MainClass extends JFrame { 

    static String sometext = "Text Text Text Text Text Text Text Text Text Text Text Text "; 

    public MainClass() { 
    super("Simple SplitPane Frame"); 
    setSize(450, 200); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 

    JTextArea jt1 = new JTextArea(sometext); 
    JTextArea jt2 = new JTextArea(sometext); 

    jt1.setLineWrap(true); 
    jt2.setLineWrap(true); 
    jt1.setMinimumSize(new Dimension(150, 150)); 
    jt2.setMinimumSize(new Dimension(150, 150)); 
    jt1.setPreferredSize(new Dimension(250, 200)); 
    JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jt1, jt2); 
    getContentPane().add(sp, BorderLayout.CENTER); 
    } 

    public static void main(String args[]) { 
    MainClass ssb = new MainClass(); 
    ssb.setVisible(true); 
    } 
} 
Questions connexes