Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để bọc văn bản trong chiều rộng của cửa sổ trong JavaFX?


Trong JavaFX, nút văn bản được biểu thị bằng Javafx.scene.text.Text lớp. Chèn / hiển thị văn bản trong cửa sổ JavaFx mà bạn cần -

  • Khởi tạo lớp Văn bản.

  • Đặt các thuộc tính cơ bản như vị trí và chuỗi văn bản, sử dụng các phương thức setter hoặc bỏ qua chúng dưới dạng đối số cho hàm tạo.

  • Thêm nút đã tạo vào đối tượng Nhóm.

Nếu độ dài của các dòng trong văn bản bạn đã lướt qua, dài hơn chiều rộng của phần cửa sổ của văn bản sẽ bị cắt nhỏ như hình dưới đây -

Làm thế nào để bọc văn bản trong chiều rộng của cửa sổ trong JavaFX?

Như một giải pháp, bạn có thể bọc văn bản trong chiều rộng của cửa sổ bằng cách đặt giá trị cho thuộc tính gói bằng, sử dụng setWrappingWidth () phương pháp.

Phương thức này chấp nhận một giá trị kép đại diện cho chiều rộng (tính bằng pixel) của văn bản. Nếu bạn chuyển một giá trị nhỏ hơn chiều rộng của cửa sổ, văn bản sẽ được bao bọc bên trong nó (chiều rộng đã cho).

Ví dụ

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 {
      //Reading the contents of a text file.
      InputStream inputStream = new FileInputStream("D:\\sample.txt");
      Scanner sc = new Scanner(inputStream);
      StringBuffer sb = new StringBuffer();
      while(sc.hasNext()) {
         sb.append(" "+sc.nextLine()+"\n");
      }
      //Creating a text object
      Text text = new Text(10.0, 25.0, sb.toString());
      //Wrapping the text
      text.setWrappingWidth(590);
      //Setting the stage
      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

Giả sử sau đây là nội dung của tệp 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.

Đầu ra

Font Name: Brush Script MT

Đầu ra

Làm thế nào để bọc văn bản trong chiều rộng của cửa sổ trong JavaFX?