我有文本框包含一個值,該值應該是右對齊。TextField右對齊問題javafx
當我運行該應用程序時,它顯示文本左對齊,但我設置了正確的對齊方式。 和第三個文本框的問題。
點擊更新按鈕後,它工作正常。
所以我可以知道它爲什麼表現不同。
代碼:
import java.io.File;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
public class TextFieldAlignment extends Application {
TextField rText;
File file;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
rText = new TextField("updated right1 updated right2 updated right3 updated right4");
rText.setAlignment(Pos.CENTER_RIGHT);
Button btn = new Button("update");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
rText.setText("updated right1 updated right2 updated right3 updated right4");
// applyWorkaround();
}
});
final Label labelFile = new Label();
Button btn2 = new Button();
btn2.setText("Open FileChooser'");
btn2.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
FileChooser fileChooser = new FileChooser();
//Set extension filter
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("AVI files (*.exml)", "*.exml");
fileChooser.getExtensionFilters().add(extFilter);
//Show open file dialog
file = fileChooser.showOpenDialog(null);
// rText.setText(file.getPath());
}
});
VBox root = new VBox();
root.getChildren().addAll(rText, btn, btn2);
stage.setScene(new Scene(root, 200, 300));
stage.show();
}
}
你能詳細說明它在做什麼,你不指望?當我運行這個時,無論如何都會有更多的文本顯示在文本框中。所以文本字段是「完整的」,沒有額外的對齊空間。如果我在運行應用程序時立即更改窗口的大小,則文本將右對齊。同樣,如果更改代碼以使文本字段被初始化爲一個短字符串,則它顯示爲右對齊。 – 2014-10-01 12:09:20
感謝您的回覆。當我運行應用程序時,第一次顯示來自左對齊的文本,但我稱setAlignment(Pos.Center_Right)和預期的結果是文本字段顯示文本(右對齊),但點擊更新按鈕時它工作正常,它顯示從右側的文本框中的文本。 ?所以我的問題,如果我設置右對齊,那麼它應該顯示在第一次嘗試的權利。爲什麼點擊按鈕時它會在正確的信息中顯示文字? – user3337109 2014-10-06 07:23:54
我想你可能會誤解「對齊」的含義。對齊方式告訴文本字段在文本字段中的空間多於文本佔據的位置時如何定位文本。在你的例子中,沒有額外的空間,所以對齊不做任何事情。將初始文本更改爲「x」,您應該看到對齊生效。 (在我的系統中,當我點擊「更新」時沒有任何變化,不知道你的意思。) – 2014-10-06 10:49:54