2016-11-23 3 views
0

javafx를 처음 사용했습니다.TextFlow에서 텍스트 정렬이 작동하지 않습니다.

채팅 패널에 메시지가 표시되는 메신저를 만들려고합니다. 내 메시지가 왼쪽에 있고 다른 메시지가 오른쪽에있는 것처럼 메시지 정렬을 원합니다.

메시지를 표시하려면 텍스트를 추가하는 곳에서 TextFlow를 사용하고 있습니다. 그러나 정렬은 작동하지 않습니다.

TextFLow tf=new TextFlow(); 
Text t1= new Text("Hi"); 
Text t2= new Text("Hello"); 
t1.setTextAlignment(TextAlignment.RIGHT); 
t2.setTextAlignment(TextAlignment.LEFT); 
tf.getChildren().addAll(t1,t2); 

그러나 정렬이 작동하지 않습니다. 두 텍스트 모두 왼쪽에 있습니다. 어떻게해야합니까?

답변

0

당신은 TextFlow의에서 TextAlignement을 설정할 수 있지만, 난 당신이 중 VBOX 레이블 &를 사용하여이 문제를 치마 까다로운 방법을 사용할 수 있습니다, 우리는하지만, 같은 용기에 두 정렬을 가질 수 생각하지 않는다 :

private VBox Chat(){ 

    VBox chat = new VBox(); 
    chat.setPrefSize(400, 400); 
    chat.setStyle("-fx-background-color:#333333;"); 

    Label txt1 = new Label("Text1"); 
    txt1.setTextFill(Color.WHITE); 
    txt1.setPrefWidth(400); 
    txt1.setAlignment(Pos.CENTER_LEFT); 

    Label txt2 = new Label("Text2"); 
    txt2.setTextFill(Color.WHITE); 
    txt2.setPrefWidth(400); 
    txt2.setAlignment(Pos.CENTER_RIGHT); 

    chat.getChildren().addAll(txt1,txt2); 

    return chat; 
} 

레이블? 이 노드는 텍스트 노드와 같은 방식으로 작동하지만 장점은 축축한 방식으로 배경의 크기를 조정할 수 있다는 점입니다.

VBox? 비록 내가 생각해도 선택 사항입니다. TextFlow은 텍스트 노드에 더 적합합니다. 그것은 또한 포지셔닝을위한, VBox는 위에서 아래로 분류 된 항목에 더 적합 채팅 패널. 행운을 빕니다 !

관련 문제