我的Java项目中有几个场景,以及我真的不知道如何解决的一个问题。 First scene called "Zadanie".在第一个场景中有一个名为“Zadanie”的TextFields和ComboBoxes。因此,正如您在图片中看到的,我在TextFields中编写了一些数字,并在ComboBoxes中选择了一些选项。然后我点击“Vypočítať”(按钮)开启其他场景。然后我切换回第一个场景“Zadanie”,但TextFields和ComboBoxes中的所有内容都消失了。 Back on first scene "Zadanie".请给我一些代码示例或如何将这些代码保留在第一个场景中。谢谢。Java - 场景生成器 - 在切换场景后,TextField和ComboBox中的用户输入消失
回答
问题是,当您切换屏幕时,表示屏幕的对象将被丢弃。因此,诸如用户输入的任何变量也被处理掉。当您切换回屏幕时,它是一个不同的对象,但属于同一类型。这意味着诸如用户输入之类的变量的值被新鲜地实例化或初始化。
解决方案: 为了存储这些信息,创建一些全局变量(例如,Main中的变量,但应该使用编程实践中不同的类)。当用户点击切换屏幕,但在屏幕实际切换(卸载)之前,将所有用户输入存储在全局变量中。然后当屏幕切换回时,将这些变量重新加载到全局变量的字段中。
Global.java
class Global {
public static String nameFieldValue;
public static String ageFieldValue;
}
PersonForm.java
class PersonForm extends BorderPane {
Button closeButton;
TextField nameField;
TextField ageField;
public PersonForm() {
this.nameField = new TextField(...);
this.ageField = new TextField(...);
this.closeButton = new Button("Close Window");
// set layouts of buttons here.
if (Global.nameFieldValue != null) {
this.nameField.setText(Global.nameFieldValue);
}
if (Global.passwordFieldValue != null) {
this.passwordField.setText(Global.passwordFieldValue);
}
PersonForm thisForm = this; // So that EventHandler cna use this.
this.closeButton.setOnAction(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
Global.nameFieldValue = thisForm.nameField.getText();
Global.passwordFieldValue = thisForm.passwordField.getText();
// switch screens.
}
});
}
}
感谢您的帮助,但您能否给我一些用代码编写的例子?这将有所帮助。 –
我真的很感激你也帮助过我的代码,但我以其他方式做了。从我的第二个屏幕我做了弹出式屏幕。这意味着当你点击按钮时,第二个屏幕将打开,但第一个屏幕不会关闭。由于我自己的教育,我下次肯定会使用你的代码。谢谢伊恩柯克帕特里克。 –
没问题!乐意效劳! –
- 1. 在javaFX中切换场景
- 2. JavaFX切换场景
- 3. 如何更改场景生成器中的场景大小?
- 4. JavaFX ScrollBar场景生成器
- 5. 使用pyglet切换场景
- 6. Java场景生成器2.0,Tab2在编辑器中切换到Tab1?
- 7. JavaFX的2场景切换
- 8. JavaFX在场景中嵌入场景
- 9. JavaFX问题切换场景
- 10. 在场景和活动之间切换
- 11. Cocos2d如何切换场景
- 12. Cocos2d场景切换和替换问题
- 13. 的InvocationTargetException在切换场景使用JavaFX
- 14. +(id)场景在替换场景后未调用
- 15. 编程方式添加的UIButton不会消失切换场景
- 16. 如何在JavaFX中切换场景
- 17. 场景过渡衰落但不切换场景
- 18. 自动生成Gatling场景
- 19. 动态切换JavaFX中的场景
- 20. 加载完成后替换场景
- 21. 显示新场景后消除前一场景
- 22. 在CocosStudio中生成运行场景?
- 23. 场景生成器崩溃Ubuntu 16.04
- 24. JavaFX场景生成器崩溃
- 25. JavaFX场景生成器问题
- 26. 无法打开场景生成器8.2.0
- 27. 与场景生成器fontawesomefx问题
- 28. 在场景之间切换JavaFX
- 29. 在移动设备上切换场景?
- 30. Xcode如何在场景之间切换
你能请张贴一些代码,重现该问题? 请参阅https://stackoverflow.com/help/how-to-ask –