TextArea не будет отображать пользовательский ввод - PullRequest
0 голосов
/ 26 февраля 2019

TextArea не будет отображать никакой информации вообще.Моя цель - отобразить пользовательский ввод из TextField в TextArea.Вот мой файл контроллера:

package application.controller;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;

public class MainController implements EventHandler<ActionEvent>{


@FXML
TextField starshipname;
TextArea shipInfo = new TextArea();
Button shipEnter;

@Override
public void handle( ActionEvent event) {

    shipInfo.appendText(starshipname.getText());

}

Я просматривал другие сообщения, похожие на мою проблему, но ни один из них не решает, что происходит.Я пробовал несколько вещей, таких как shipInfo.setText("test"), удаление new TextArea(); дает мне ошибку NullPointerException.В конечном счете, я хочу вызвать другую функцию из контроллера, чтобы отобразить конкретную информацию о TextArea на основе пользовательских данных.Во-первых, я хочу убедиться, что могу вообще отображаться в TextArea.Вот мой основной файл:

package application;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;


public class Main extends Application {

public static Stage stage;

@Override
public void start(Stage primaryStage) {

     try {
         Parent root = FXMLLoader.load(getClass().getResource("../Main.fxml"));
         primaryStage.setScene(new Scene(root, 800, 800));
         primaryStage.show();

         stage = primaryStage;

     } catch(Exception e) {
         e.printStackTrace();
     }
}

public static void main(String[] args) {
    launch(args);
}
}

Вот также мой файл Main.fxml:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.effect.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane prefHeight="800.0" prefWidth="800.0" 
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" 
fx:controller="application.controller.MainController">
<children>
  <Label alignment="CENTER" prefHeight="179.0" prefWidth="800.0" 
text="United Federation of Planets" textAlignment="CENTER">
     <font>
        <Font name="Old English Text MT" size="40.0" />
     </font>
  </Label>
  <Label alignment="CENTER" layoutX="35.0" layoutY="50.0" prefHeight="90.0" prefWidth="93.0" text="O">
     <font>
        <Font name="Old English Text MT" size="96.0" />
     </font>
  </Label>
  <Label alignment="CENTER" layoutX="7.0" prefHeight="111.0" prefWidth="93.0" text="O">
     <font>
        <Font name="Old English Text MT" size="96.0" />
     </font></Label>
  <Label layoutX="81.0" layoutY="-6.0" text="O">
     <font>
        <Font name="Old English Text MT" size="96.0" />
     </font>
  </Label>
  <Label layoutX="217.0" layoutY="179.0" text="Enter a starship name to view personnel:">
     <font>
        <Font name="Centaur" size="25.0" />
     </font>
  </Label>
  <TextField fx:id="starshipname" layoutX="257.0" layoutY="223.0" prefHeight="0.0" prefWidth="275.0">
     <font>
        <Font name="Centaur" size="18.0" />
     </font>
  </TextField>
  <Button fx:id="shipEnter" layoutX="360.0" layoutY="278.0" mnemonicParsing="false" onAction="#handle" prefHeight="36.0" prefWidth="82.0" text="Submit">
     <font>
        <Font name="Centaur" size="17.0" />
     </font>
     <effect>
        <DropShadow blurType="TWO_PASS_BOX">
           <input>
              <InnerShadow />
           </input>
        </DropShadow>
     </effect>
  </Button>
  <TextArea fx:id="shipInfo" editable="false" layoutX="54.0" layoutY="330.0" prefHeight="409.0" prefWidth="692.0">
     <font>
        <Font name="Centaur" size="18.0" />
     </font>
  </TextArea>
  </children>
  <opaqueInsets>
  <Insets />
  </opaqueInsets>
 </AnchorPane>

Любая помощь очень ценится.

...