我正在尝试为聊天应用程序制作GUI。我的GUI非常简单,我希望在让它看起来更“花哨”之前加入一些功能。到目前为止它看起来像这样。
我基本上想要的是,当我按下' Enter'或者单击发送按钮,它应该将来自TextArea的输入与另一个字符串一起附加,并将其添加到ScrollPane上。
到目前为止我的代码看起来像这样。
public class Controller {
@FXML
private TextArea textInput;
@FXML
private Button sendButton;
@FXML
private ScrollPane chatConversation;
public void initialize() {
sendButton.setOnAction((event) -> {
textInput.appendText("Button Action\n");
});
}
和FXML一样
<BorderPane fx:id="pane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="750.0" prefWidth="1000.0" stylesheets="@style/style.css" xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<left>
<Pane prefHeight="750.0" prefWidth="184.0" BorderPane.alignment="CENTER" />
</left>
<center>
<VBox prefHeight="200.0" prefWidth="100.0" BorderPane.alignment="CENTER">
<children>
<ScrollPane fx:id="chatConversation" prefHeight="734.0" prefWidth="816.0">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="200.0" prefWidth="200.0" />
</content>
</ScrollPane>
<HBox prefHeight="52.0" prefWidth="400.0">
<children>
<Button fx:id="attach" mnemonicParsing="false" prefHeight="70.0" prefWidth="70.0" />
<TextArea fx:id="textInput" focusTraversable="false" prefHeight="37.0" prefWidth="625.0" promptText="Write your message here" wrapText="true">
<HBox.margin>
<Insets />
</HBox.margin>
<effect>
<Glow level="0.06" />
</effect>
</TextArea>
<Button fx:id="emoji" mnemonicParsing="false" prefHeight="70.0" prefWidth="70.0" />
<Button id="sendButton" fx:id="sendButton" alignment="CENTER" mnemonicParsing="false" nodeOrientation="LEFT_TO_RIGHT" prefHeight="70.0" prefWidth="70.0" textOverrun="CLIP" wrapText="true" />
</children>
</HBox>
</children>
</VBox>
</center>
</BorderPane>
我可以将Textarea的textinput添加到自身,这很有效,但是当我尝试将其添加到Scrollpane时,它就不会起作用