有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java javafx跨屏幕从标签传输文本

我已经搜索过了,我相信其他人也有这个问题。许多帖子都没有得到回复或被否决,甚至我自己的帖子也没有给出解决方案。我想知道如何在类之间传输标签数据。例如,假设我有以下内容:

头等舱:

Label lab;
public void setText() {
   lab.setText("hello");
}
public String getText() {
   return lab.getText();
}
public void switchScene(ActionEvent event) throws IOException {
//code to switch scenes when button pressed
setText(); //this is also called when button pressed

}

中产阶级:

public void switchScenes(ActionEvent event) throws IOException {
    FirstScreenController p = new FirstScreenController();
    n.displayAmt(p.getText()); //get text from first scene's label
}

目标类别:

Label otherLab;
public void displayAmt(String amt) {
    otherLab.setText(amt); //set text from first scene's label to this label
}

假设中间类方法设置为按钮。单击按钮后,随着程序切换场景,一切似乎都正常工作。但是,目标类中的otherLab为空。第一个类中标签的文本传输到目标类中的标签失败

如何着手解决这个问题?我知道java是按值传递的,所以第一个标签不会携带函数所做的更改。如何克服这一问题


共 (2) 个答案

  1. # 1 楼答案

    正如第一个答案所建议的,您正在创建一个新对象,因此getText方法将返回null; 您可以使用java的writer和reader类。io包。 get文本可以包含将文本存储在具有编写器的文件中的代码,并且目标类可以通过读取器从该文件中读取。 这不应该是一个昂贵的程序

    io的一个好链接: https://www.tutorialspoint.com/java/io/index.htm 如果是jsp,您可以获取参数,但这些值是运行时的,您需要持久化它们。 序列化也是一种选择

  2. # 2 楼答案

    每一次切换场景时,你都在创建一个带有空标签的新控制器对象,这样中间类中的GETTeX返回空行。p>

    FirstScreenController p = new FirstScreenController();
    

    为什么需要标签文本?这不是用户输入或类似的内容,标签只是一个标签,固定文本,如果您需要在第二个屏幕中创建一个新的标签。如果您的问题是:如何在场景之间共享参数,这取决于不同的情况,您可以从文件或类似的东西中读取,但如果您试图这样做,您的问题是如何在类之间共享信息,而不是javafx