首页 文章

如何从多个文本字段中获取文本?网络bean和场景生成器

提问于
浏览
0

从多个文本字段获取文本时遇到问题 . 我正在使用带有Scene Builder的Net Beans作为UI-Extension . 每次运行程序时,都会出现以下错误:

线程中的异常"JavaFX Application Thread" java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

我已将文本字段初始化为如下: EmailController.java

@FXML private TextField txtTo;
@FXML private TextField txtSubject;
@FXML private TextField txtMessage;

当我按“发送”时,我想打印我从文本字段中获取的文本 .

txtMessage是一个多行文本字段 .

EmailController.java

@FXML
private void handleSendAction(ActionEvent event) {
    System.out.println(txtTo.getText());
    System.out.println(txtSubject.getText());
    System.out.print(txtMessage.getText());
}

任何帮助将非常感激 .

Caused by:

引起:sun.reflect.DeativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.invoke:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java)的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)中的java.lang.reflect.InvocationTargetException :43)在sun.reflect.GeneratedMethodAccessor1.invoke(未知来源)的sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)的java.lang.reflect.Method.invoke(Method.java:498) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)at javafx .fxml.FXMLLoader $ MethodHandler.invoke(FXMLLoader.java:1769)... 48更多引起:clientv2.pkg0.EmailController.handleSendAction(EmailController.java:46)的java.lang.NullPointerException ... 58更多

Email.fxml

<AnchorPane id="AnchorPane" prefHeight="375.0" prefWidth="600.0" style="-fx-background-color: #d3d3e8;" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="clientv2.pkg0.EmailController">
   <children>
      <TextField fx:id="txtTo" layoutX="5.0" layoutY="36.0" prefHeight="30.0" prefWidth="590.0" promptText="TO:" />
      <TextField fx:id="txtSubject" layoutX="5.0" layoutY="66.0" prefHeight="30.0" prefWidth="590.0" promptText="SUBJECT:" />
      <TextArea fx:id="txtMessage" layoutX="5.0" layoutY="96.0" prefHeight="240.0" prefWidth="590.0" promptText="Enter Text Here..." />
      <Button fx:id="btnSend" layoutX="477.0" layoutY="342.0" mnemonicParsing="false" onAction="#handleSendAction" prefHeight="25.0" prefWidth="118.0" style="-fx-background-color: #bcb1cc;" text="Send" />
      <Label layoutX="273.0" layoutY="2.0" text="Email">
         <font>
            <Font size="23.0" />
         </font>
      </Label>
   </children>
</AnchorPane>

1 回答

  • 1

    TextFieldTextArea 是两个不同的控件 . 在FXML文件中,她声明了 TextArea 但在控制器中注释了 TextField .

    为了代码疯了

    @FXML private TextField txtMessage;
    

    @FXML private TextArea txtMessage;
    

相关问题