2014-02-19 77 views
0

我嘗試在JavaFX中構建計算器,並且我想在顯示器上顯示一定數量的數字時動態更改字體大小,以便它適合。Javafx文本字段textpaigment中斷字體更改

這工作正如我希望它當我設置文本對齊到左側。 但是,當我在右側使用任何文本對齊方式時,它確實不起作用,它會出錯。

更具體地講,看看下面的圖片:

這是啓動時的大小默認:

http://www7.pic-upload.de/19.02.14/8xjsfv1awtl1.jpg

然後我改變字體大小:

http://www7.pic-upload.de/19.02.14/9518liqv4ebw.jpg

你可以看到對齊被打破.... 但有趣的部分是當你點擊進入文本字段,將自我修正,將是這樣的:(沒有聯繫,因爲聲譽限制廢話)

www7.pic-upload.de/19.02.14/5e3ddqyt575o.jpg

有沒有解決方法?下面是我的代碼一些例子:

GUI.fxml

<TextField fx:id="display" alignment="BASELINE_RIGHT" cache="false" editable="false" layoutX="18.0" layoutY="17.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" onKeyPressed="#keylistener" prefHeight="54.0" prefWidth="206.0" promptText="" styleClass="textcustom, rand, backgroundfield" text="" /> 

Application.css

.background { 
    -fx-background-color: #4682B4; 
} 
.backgroundfield { 
    -fx-background-color: #F5F5F5; 
} 
.button { 
    -fx-background-color: #FFF5EE; 
} 
.textcustom{ 
    -fx-font: 26px "Serif"; 
} 
.rand{ 
    -fx-border-style: solid; 
    -fx-border-color: black ; 
    -fx-border-width: 1px; 
} 

Java代碼來改變字體:

display.setStyle("-fx-font: 18px Serif;"); 
+0

您的文本框不可編輯。沒有看到你的keylistener很難說出什麼。 –

+0

我不認爲可編輯的部分是原因,我的意思是它的工作時,對齊是在左側。 另外我還沒有實現,我第一次嘗試了一個按鈕,並得到了這些結果。我沒有聽到任何關於Mouseevent按鈕的免除,但它運行的唯一代碼是我在最後寫的代碼。 – user3327172

回答

0

這似乎是一個錯誤。解決方法可以使用​​而不是TextField

+0

我會給它一個bash並會回報 – user3327172