【问题标题】:Displaying console output to TextArea in JavaFX FXML App在 JavaFX FXML 应用程序中向 TextArea 显示控制台输出
【发布时间】:2018-01-26 13:20:08
【问题描述】:

我有一个类似于“Hello World”的简单程序,它使用getText() 检索两个文本字段的内容并将它们打印到控制台。这很好用。

我定义了一个 TextArea,我想改为显示输出。我已经尝试了所有我发现的东西,但是我遇到了各种各样的错误,试图将答案调整到我的代码中,所以请原谅我。

我真的很感激有人只是向我展示如何并解释为什么你的答案有效,因为我正在努力学习。

主要方法:-

public class JavaFXApplication2 extends Application {



@Override
public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("gui.fxml"));

    Scene scene = new Scene(root);

    stage.setScene(scene);
    stage.show();
}//end start method

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    launch(args);
}//end main    
}//end class

还有我的控制器

public class guiController implements Initializable {

//@FXML private Label label;
@FXML private TextField tf1;
@FXML private TextField tf2;
@FXML private TextArea ta; //want to display responses here


@FXML
private void handleButtonAction(ActionEvent event) {
    System.out.println("IP Address " + tf1.getText() + " " + "Password: " + tf2.getText());

}//end event handler

@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
}//end init method    

}//end class

简单来说,我希望System.out.println(""); 的结果出现在我的名为“ta”的文本区域中。

感谢您的宝贵时间。

【问题讨论】:

  • 您是否只是想将System.out.println(...) 替换为ta.appendText(...)
  • 谢谢,这正是我所需要的。我在末尾添加了一个+ "\n" ,所以它每次都使用一个新行,效果很好。我希望你发布了一个正确的答案,这样我就可以投票了。

标签: java javafx scenebuilder


【解决方案1】:

用途:

ta.setText("IP Address " + tf1.getText() + " " + "Password: " + tf2.getText());

【讨论】:

  • 是的,试过了,但每次调用 setText 时它只使用同一行,但上面的答案成功了。感谢您的回复。
  • ta.setWrapText(true);并写 ta.setText(ta.getText + ...);
  • 每次单击按钮时仍然只使用相同的 1 行。上面詹姆斯 D 的回答很到位,因为它每次点击都会使用一个新行。
猜你喜欢
  • 1970-01-01
  • 2019-09-10
  • 2016-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-03
相关资源
最近更新 更多