[java] JavaFX 텍스트 입력과 검색 기능 구현

이번 글에서는 JavaFX를 사용하여 텍스트 입력과 검색 기능을 구현하는 방법을 알아보겠습니다.

1. TextField 구성하기

먼저, 텍스트 입력을 받기 위해 TextField를 구성해야 합니다. TextField는 JavaFX의 사용자 입력을 받는 기본 컨트롤입니다. 다음은 TextField를 생성하고 Scene에 추가하는 간단한 예제입니다.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class MyTextFieldApp extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Text Input App");

        TextField textField = new TextField();
        
        VBox vbox = new VBox(textField);
        
        Scene scene = new Scene(vbox, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

위 예제에서는 TextField를 생성하고 VBox 컨테이너에 추가한 후, Scene에 VBox를 포함시켜주었습니다. 마지막으로, primaryStage를 통해 애플리케이션을 실행시킵니다.

2. 입력된 텍스트 검색하기

TextField에 입력된 텍스트를 검색하기 위해서는 이벤트 처리를 이용해야 합니다. JavaFX에서는 TextField의 setOnAction() 메서드를 이용하여 엔터키 이벤트를 처리할 수 있습니다. 다음은 TextField에 입력된 텍스트를 검색하는 예제입니다.

textField.setOnAction(event -> {
    String inputText = textField.getText();
    search(inputText);
});

위 예제에서는 TextField에 ActionListener를 등록하여 엔터키가 눌렸을 때 실행될 코드를 작성합니다. 입력된 텍스트는 textField.getText()를 통해 가져오고, 이를 검색하는 search() 메서드에 전달합니다. 여기서는 검색 결과를 출력하는 코드를 작성합니다.

3. 추가적인 기능 구현하기

텍스트 입력과 검색 기능 외에도, JavaFX를 사용하면 다양한 기능을 구현할 수 있습니다. 예를 들어, TextField에 힌트 메시지를 추가하여 사용자가 무엇을 입력해야 하는지 알려줄 수 있습니다.

textField.setPromptText("검색어를 입력하세요");

텍스트 입력을 제한하고자 할 때는 textField.setMaxLength() 메서드를 사용하여 최대 길이를 설정할 수 있습니다.

textField.setMaxLength(50);

또한, TextField의 스타일링을 위해 CSS를 사용할 수도 있습니다. JavaFX에서는 .css 파일을 생성하여 스타일을 정의하고, Scene에 스타일시트를 추가하는 방법을 제공합니다.

scene.getStylesheets().add("style.css");

마무리

이번 글에서는 JavaFX를 사용하여 텍스트 입력과 검색 기능을 구현하는 방법을 알아보았습니다. TextField를 구성하고 입력된 텍스트를 검색하는 방법뿐만 아니라, 추가적인 기능 구현에 대해서도 소개하였습니다. JavaFX는 다양한 UI 컨트롤과 이벤트 처리 기능을 제공하기 때문에, 텍스트 입력 및 검색 외에도 많은 기능을 구현할 수 있습니다.