当前位置: 首页 > 知识库问答 >
问题:

JavaFX数据管理[副本]

傅啸
2023-03-14

场景1及其Scene1Controller!它有一个文本字段(客户名称)和一个按钮!

输入“stackoverflow”到屏幕键盘的textfield!

在屏幕键盘中按enter键后,如何将屏幕键盘的textfield值检索到场景1的customer name字段中?

场景一:

<TextField fx:id="CustomerName" layoutX="14.0" layoutY="75.0" onAction="#TextBoxTextChanged" prefHeight="29.0" prefWidth="254.0"/>
<Button fx:id="OnScreenKeyBoardButton" layoutX="268.0" layoutY="75.0" mnemonicParsing="false" onAction="#ButtonNameClick" prefHeight="29.0" text="..." />
<Button fx:id="enterButton" layoutX="796.0" layoutY="210.0" minHeight="18.8" mnemonicParsing="false" prefHeight="40.0" prefWidth="90.0" text="Enter" onAction="#ButtonEnterClick"/>
@FXML
public void ButtonNameClick(final ActionEvent event)
{
  //opens on-screen keyboard
}

屏幕键盘控制器:

@FXML
public void ButtonEnterClick(final ActionEvent event)
{
  //code to be written to get the text field of the on-screen keyboard into the textfield of scene 1
}

共有1个答案

柳星晖
2023-03-14

只需在键盘控制器中创建一个属性来表示文本,并从“Screen1Controller”中观察:

public class KeyboardController {
    private StringProperty text = new SimpleStringProperty(this, "text", "");
    public StringProperty textProperty() {
         return text ;
    }
    public String getText() {
        return text.get();
    }
    public void setText(String text) {
        this.text.set(text);
    }

    @FXML
    public void buttonEnterClick(ActionEvent event) {
        text.set(// text from keyboard) ;
    }
    // ... everything else as before
}

而且

public class Screen1Controller {
    @FXML
    private TextField customerName ;
    // ...
    @FXML
    public void buttonNameClick(ActionEvent event) {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("Keyboard.fxml"));
        Parent parent = loader.load();
        KeyboardController controller = (KeyboardContoller) loader.getController();
        controller.textProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue<? extends String> obs, String oldValue, String newValue) {
                // update text field with newValue:
                customerName.setText(newValue);
            }
        });
        // show keyboard ...
    }

    // other code...
}
 类似资料:
  • 在本章节,提供了关于诸葛io数据管理的相关文档: 数据模型 数据接入技术 identify记录用户身份 UTM参数标识流量 DeepShare跨应用商店的来源分析 事件分组&重要事件(星标事件) 数据的别名/隐藏/停用 字符串/数值/日期的设置 用户信息脱敏与数据安全 成员角色权限表

  • 这一章介绍如何在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录 (Bind mounts)

  • 频道流水报表管理 获取频道报表 获取频道资金流水 获取频道打赏流水 获取频道发红包/抢红包记录 获取频道付费流水 获取观众观看流水_V2 获取观众观看流水_V1 获取频道报名问卷数据 获取频道问卷列表数据 获取频道观众列表V2 获取频道观众列表

  • 我是wordpress的新手,在管理数据库方面有困难。我已经安装了“管理员”插件来管理数据库。我已经创建了一个名为“usersupp_admin”的新表。现在我还创建了一个自定义模板,该模板将使用PDO语句连接到此数据库,现在的问题是在哪里可以获取主机、数据库名、用户和密码?以下是代码: 任何帮助都将不胜感激。

  • “数据管理”用来管理“百度统计-分析云”所追踪的数据,帮助您对产品内所有的数据进行统一管理和维护。 新版分析云的数据模型由之前的“PV模型”升级为“事件模型”。支持您对产品进行更多场景下的精细化分析。在使用分析云进行分析前,您需要在“数据管理”内定义“事件”和“属性”。 事件是用户在产品上的行为,如“浏览页面”、“点击元素”等。 属性是用来描述事件的维度。在分析云中,属性不从属于具体事件,您需要从

  • CREATE TABLE充当来自CSVREAD的SELECT*('c://users/h/downloads/SERVES.csv');SQL语句“create TABLE SERVES AS SELECT*FROM CSVREAD([*]'c://users/h/downloads/SERVES.csv')”中的语法错误;SQL语句:CREATE TABLE充当从CSVREAD中选择*('c:/