【问题标题】:How to get the text from multiple text fields? Net beans and Scene Builder如何从多个文本字段中获取文本? Net beans 和 Scene Builder
【发布时间】:2017-10-14 09:25:40
【问题描述】:

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

线程“JavaFX 应用程序线程”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());
}

任何帮助将不胜感激。

原因:

引起:java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) 在 sun.reflect.GeneratedMethodAccessor1.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) 在 javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769) ... 48 更多 引起:java.lang.NullPointerException 在 clientv2.pkg0.EmailController.handleSendAction(EmailController.java:46) ... 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>

【问题讨论】:

  • 事件处理程序也在我的 Email.fmxl 中,每个文本字段的 id 对应于我初始化的文本字段名称。
  • 显示完整的异常信息。
  • @mrmcwolf 错误信息异常长错误信息
  • @JenniferBester - 即便如此 - 您提供的部分没有有用的信息。据推测,有一个“由”进一步向下跟踪。您至少应该发布最后一个“由”部分,显示原始异常。
  • 你能给我们你的fxml文件的内容吗?

标签: java netbeans textfield netbeans-8 scenebuilder


【解决方案1】:

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

让代码发疯

@FXML private TextField txtMessage;

@FXML private TextArea txtMessage;

【讨论】:

  • 是的,他是对的,这就是你得到 NullPointerException 的原因
猜你喜欢
  • 2020-05-15
  • 2021-08-17
  • 2021-10-06
  • 1970-01-01
  • 2018-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多