Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

JavaFX에서 텍스트 노드(Text Node)를 만들고 화면에 표시하는 방법

JavaFX에서 텍스트 노드는 javafx.scene.text.Text 클래스로 표현됩니다. 이 클래스의 인스턴스를 생성하면 JavaFX 윈도우(Stage)에 손쉽게 텍스트를 추가할 수 있습니다.

텍스트 노드의 기본 속성

  • X − 텍스트의 x 좌표를 나타내는 속성입니다. setX() 메서드를 사용하여 값을 설정할 수 있습니다.

  • Y − 텍스트의 y 좌표를 나타내는 속성입니다. setY() 메서드를 사용하여 값을 설정할 수 있습니다.

  • text − JavaFX 윈도우에 실제로 표시될 문자열을 나타내는 속성입니다. setText() 메서드를 사용하여 값을 설정할 수 있습니다.

이 외에도 setWrappingWidth() 메서드를 사용하면 지정한 너비를 기준으로 텍스트가 자동으로 줄바꿈되도록 설정할 수 있어, 긴 문장이나 파일 내용을 출력할 때 유용합니다.

JavaFX 윈도우에 텍스트를 삽입하는 절차

  1. Text 클래스의 인스턴스를 생성합니다.

  2. 위치(x, y)와 표시할 문자열 등 기본 속성을 세터(setter) 메서드로 설정하거나, 생성자의 인자로 전달하여 지정합니다.

  3. 생성된 노드를 Group 객체에 추가하고, 이를 Scene에 담아 Stage에 설정합니다.

예제 코드

다음 예제는 로컬에 있는 텍스트 파일(sample.txt)의 내용을 읽어와 JavaFX 윈도우에 출력하는 프로그램입니다.

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.Text;

public class CreatingText 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");
      }
      String str = sb.toString();
      // Text 객체를 생성합니다.
      Text text = new Text();
      // 텍스트의 속성을 설정합니다.
      text.setText(str);
      text.setWrappingWidth(580);
      text.setX(10.0);
      text.setY(25.0);
      // Stage를 설정합니다.
      Group root = new Group(text);
      Scene scene = new Scene(root, 595, 300, Color.BEIGE);
      stage.setTitle("Displaying 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.

실행 결과

프로그램을 실행하면 읽어온 텍스트 파일의 내용이 지정한 위치와 줄바꿈 너비에 맞춰 JavaFX 윈도우에 그대로 표시됩니다.

JavaFX에서 텍스트 노드(Text Node)를 만들고 화면에 표시하는 방법