JavaFX에서 텍스트 노드는 javafx.scene.text.Text 클래스로 표현됩니다. JavaFX 윈도우에 텍스트를 삽입하고 화면에 표시하려면 다음 과정이 필요합니다.
- Text 클래스의 인스턴스를 생성합니다.
- setter 메서드를 사용하거나 생성자에 인수를 직접 전달하여 위치, 텍스트 문자열 등 기본 속성을 설정합니다.
- 생성한 노드를 Group 객체에 추가합니다.
그런데 만약 전달한 텍스트의 한 줄 길이가 창 너비보다 길다면, 아래 그림처럼 텍스트의 일부가 창 밖으로 잘려 보이게 됩니다.

setWrappingWidth() 메서드로 해결하기
이 문제를 해결하려면 setWrappingWidth() 메서드를 사용해 wrappingWidth 속성에 값을 지정하면 됩니다. 이렇게 하면 창 너비 안에서 텍스트가 자동으로 줄바꿈됩니다.
이 메서드는 텍스트의 너비(픽셀 단위)를 나타내는 double 값을 인수로 받습니다. 창 너비보다 작은 값을 전달하면, 텍스트는 지정된 해당 너비 안에서 줄바꿈되어 전체 내용이 잘리지 않고 표시됩니다.
예제 코드
아래 예제는 텍스트 파일(sample.txt)의 내용을 읽어와 화면에 출력하면서, setWrappingWidth() 메서드를 사용해 텍스트가 창 너비 안에서 줄바꿈되도록 설정한 코드입니다.
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Scanner;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
public class WrappingTheText extends Application {
public void start(Stage stage) throws FileNotFoundException {
// 텍스트 파일의 내용을 읽어옵니다.
InputStream inputStream = new FileInputStream("D:\\sample.txt");
Scanner sc = new Scanner(inputStream);
StringBuffer sb = new StringBuffer();
while(sc.hasNext()) {
sb.append(" " + sc.nextLine() + "\n");
}
// Text 객체를 생성합니다.
Text text = new Text(10.0, 25.0, sb.toString());
// 텍스트 줄바꿈 너비를 590픽셀로 설정합니다.
text.setWrappingWidth(590);
// 스테이지를 설정합니다.
Group root = new Group(text);
Scene scene = new Scene(root, 595, 300, Color.BEIGE);
stage.setTitle("Wrapping The Text");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
sample.txt 파일 내용
아래는 예제에서 사용하는 sample.txt 파일의 내용이라고 가정합니다.
JavaFX is a Java library used to build Rich Internet Applications. The applications written using this library can run consistently across multiple platforms. The applications developed using JavaFX can run on various devices such as Desktop Computers, Mobile Phones, TVs, Tablets, etc.. To develop GUI Applications using Java programming language, the programmers rely on libraries such as Advanced Windowing Tool kit and Swing. After the advent of JavaFX, these Java programmers can now develop GUI applications effectively with rich content.
실행 결과
프로그램을 실행하면 파일의 전체 내용이 화면에 출력되며, 각 줄이 창 너비인 590픽셀을 기준으로 자동으로 줄바꿈되어 어떤 부분도 잘리지 않고 온전하게 표시됩니다.
