我正在使用JavaFX和SceneBuilder爲教育性文本處理應用程序創建前端。對於這部分應用程序,用戶輸入兩個單詞,然後計算它們之間的編輯距離。返回字路徑的字符串列表。具體細節在這一點上並不重要,但我正在研究如何顯示結果。無論長度如何,我都希望它們能夠居中。我還必須處理字符串的寬度對於對話窗口來說太大的情況,所以在那裏輸入也會很好。現在我只是使用一個單一的AnchorPane和Labels,我敢肯定它太簡單了,我希望有更好的方法來實現這一點。保持以JavaFX爲中心的可變長度字符串(使用標籤)
編輯:也有一個問題,當對話框第一次彈出標籤不存在,然後一旦點擊它們出現。
public void setResult(List<String> result) {
numStepsLabel.setText(Integer.toString(result.size()-2));
//TODO -- work on layout
String str = buildResultString(result);
pathLabel.setText(str);
}
private String buildResultString(List<String> result) {
StringBuilder sb = new StringBuilder();
for(String str : result) {
sb.append(str);
sb.append(" -> ");
}
// delete last ->
sb.delete(sb.length() - 4, sb.length() -1);
return sb.toString();
}
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane prefHeight="200.0" prefWidth="300.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="application.EDResultController">
<!-- TODO Add Nodes -->
<children>
<Label layoutX="120.0" layoutY="45.0" text="Word Path:" />
<Label fx:id="pathLabel" layoutX="136.0" layoutY="74.0" text="Label" textAlignment="CENTER" />
<Label layoutX="59.0" layoutY="123.0" text="Number of steps:" />
<Label fx:id="numStepsLabel" layoutX="180.0" layoutY="123.0" text="Label" />
<Button layoutX="132.0" layoutY="159.0" mnemonicParsing="false" text="OK" />
</children>
</AnchorPane>