在JavaFX中对齐文本区域的内容

在JavaFX中对齐文本区域的内容,java,javafx,Java,Javafx,我正在制作一个简单的文本编辑器,用于培训目的。我想创建一个按钮,将我的文本输入从TextArea集中,就像在MS Word中一样。我在FXML中有我的按钮,但我不知道我的TextArea对象应该使用什么方法,我尝试了setStyle()或getChild(),但都不起作用 这是我在FXML中的按钮 这是TextArea @FXML private void toTheCenter(ActionEvent event){ String text = textArea.getText

我正在制作一个简单的文本编辑器,用于培训目的。我想创建一个按钮,将我的文本输入从
TextArea
集中,就像在MS Word中一样。我在FXML中有我的按钮,但我不知道我的
TextArea
对象应该使用什么方法,我尝试了
setStyle()
getChild()
,但都不起作用


这是我在FXML中的按钮


这是
TextArea

@FXML
private void toTheCenter(ActionEvent event){
    String text = textArea.getText();
}
这是来自控制器的方法。

#text area*.text{-fx text alignment:center;}
在项目文件夹中创建一个style.css文件,然后将以下行添加到java代码中

scene.getStylesheets().addAll(this.getClass().getResource("style.css").toExternalForm()); primaryStage.setScene(scene);
#文本区域*.text{-fx文本对齐:居中;}
在项目文件夹中创建一个style.css文件,然后将以下行添加到java代码中

scene.getStylesheets().addAll(this.getClass().getResource("style.css").toExternalForm()); primaryStage.setScene(scene);
您需要在文本区域的文本节点上设置

动态执行此操作的最佳方法是为文本区域定义自定义CSS伪类:

PseudoClass centered = PseudoClass.getPseudoClass("centered");
然后在外部CSS文件中,您可以

。文本区域:居中。文本{
-fx文本对齐:居中;
}
然后你可以打电话

textArea.pseudoClassStateChanged(centered, true);
切换中心,以及

textArea.pseudoClassStateChanged(centered, false);
把它关掉

这是一个SSCCE(将CSS代码放在上方的
居中文本区域。CSS
):

您需要在文本区域的文本节点上设置

动态执行此操作的最佳方法是为文本区域定义自定义CSS伪类:

PseudoClass centered = PseudoClass.getPseudoClass("centered");
然后在外部CSS文件中,您可以

。文本区域:居中。文本{
-fx文本对齐:居中;
}
然后你可以打电话

textArea.pseudoClassStateChanged(centered, true);
切换中心,以及

textArea.pseudoClassStateChanged(centered, false);
把它关掉

这是一个SSCCE(将CSS代码放在上方的
居中文本区域。CSS
):


你在使用SceneBuilder吗?我在使用NetBeansNetbeans是ide,但我想知道你是否在使用SceneBuilder设计fx应用程序的样式,我给出了一个答案。请检查它是否有帮助。我不知道把你的答案放在哪里。你在使用SceneBuilder吗?我在使用NetBeansNetbeans是ide,但正如我想知道的那样,您是否使用SceneBuilder设计外汇应用程序的样式,我给出了一个答案。请检查它是否有帮助我不知道将您的答案放在哪里。更新了答案,但您应该在问题中问这个问题更新了答案,但您应该在问题中问这个问题