2014-02-19 45 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