Je n'aime pas les barres de menus, donc je limite mon application à KeyCombinations pour générer des événements. J'ai la combinaison de touches qui fonctionne mais j'ai le sentiment que je n'utilise pas les contrôleurs correctement. J'ai besoin d'éditer la nouvelle scène dans mon contrôleur mais je me retrouve dans le try/catch de l'événement KeyCombination.JavaFX créant une nouvelle scène à partir de KeyCombination correctement
Je voudrais faire tous les changements à la scène en classe SettingsController.java
où je crée une nouvelle scène/vue
final KeyCombination settingsCMD = new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_DOWN);
scene.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>()
{
@Override
public void handle(KeyEvent event)
{
if (settingsCMD.match(event))
{
System.out.println("CTRL + S was pressed on " + name + " display\n" +
"Opening Settings Scene");
/*
* This is where we need to launch a scene for settings
*/
try
{
Parent root = FXMLLoader.load(getClass().getResource("/sample/view/settingsscreen.fxml"));
Stage settingsStage = new Stage();
settingsStage.setTitle("Settings");
settingsStage.setScene(new Scene(root, 500 , 400));
settingsStage.show();
// This really needs to be done in the controller. How do I do this?
JSON jsonTools = new JSON();
jsonTools.readJSONSettings();
jsonTools.writeJSONSettings();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
});
SettingsController.java
public class SettingsController
{
@FXML private TextField hostname;
public String getText()
{
String textProp = textProperty().get();
System.out.println("testProperty is " + textProp + "\n");
return textProp;
}
public void setText(String value)
{
textProperty().set(value);
}
private StringProperty textProperty()
{
return hostname.textProperty();
}
}
Je me suis déplacé ce bloc tout mon code pour obtenir ce travail , pourriez-vous s'il vous plaît le placer dans le code fourni afin que je comprenne ce que vous faites? – DevinM
Peut-être que cette réponse peut vous fournir de l'aide supplémentaire [http://stackoverflow.com/questions/36585761/store-dynamic-screen-with-multiple-stages/36612093#36612093](http://stackoverflow.com/questions/ 36585761/store-dynamic-screen-with-multiple-stades/36612093 # 36612093). – jns
Merci pour l'aide, cela a fait l'affaire! – DevinM