JavaFX entièrement personnalisé de windows?
Je voudrais avoir une application dans laquelle j'ai entièrement personnalisés de la fenêtre de l'apparence. Jusqu'à présent, j'ai appris que je peux supprimer la fenêtre classique des trucs avec:
class Application extends javafx.application.Application {
/**
* Starts the application.
*
* @param stage
*/
override def start(stage: Stage) {
stage.initStyle(StageStyle.TRANSPARENT)
//Load the main window view.
val loader = new FXMLLoader()
loader.setLocation(getClass.getResource("/com/myproj/application/MainWindow.fxml"))
val root = loader.load().asInstanceOf[Parent]
val scene: Scene = new Scene(root, Color.TRANSPARENT)
stage.setScene(scene)
stage.show()
}
}
Tout le reste fonctionne bien, sauf que la fenêtre en faisant glisser, double-cliquer pour agrandir, en la faisant glisser vers l'écran de bord supérieur sur Windows active optimisation, etc. La Fenêtre native capacités sont totalement absente.
Je peux en quelque sorte assez facilement personnaliser l'ensemble de l'apparaître de la fenêtre sans perdre toutes ces belles capacités.
Je parle de quelque chose comme Adobe Photoshop qui l'air complètement différent, mais conserve toujours ces caractéristiques (ou les met en œuvre sur le haut de leur INTERFACE utilisateur manuellement).
Il serait un début si je pourrais au moins mettre en œuvre glisser + boutons de la fenêtre pour commencer. Je suis ciblant Linux, Mac et Windows ici.
Vous devez vous connecter pour publier un commentaire.
Voir l'personnalisé l'apparence de la fenêtre et de la manipulation dans le L'Ensemble de l'Échantillon de l'application, qui inclut le code source. Télécharger le source, le compiler et l'exécuter comme une application autonome plutôt qu'intégrées dans un navigateur. Il ne va pas être exactement ce que vous demandez, parce que des trucs comme les faisant glisser à bord supérieur de l'écran pour activer la maximisation de ne marchera pas je pense, mais il devrait être très proche et vous pouvez toujours le code vous-même quelque chose qui maximise la fenêtre quand il a été traîné près du bord supérieur. L'Ensemble de la fenêtre a des caractéristiques comme le redimensionnement personnalisé décorations, réduire, agrandir, fermer les icônes, une zone en haut de la fenêtre que vous pouvez utiliser pour faire glisser la fenêtre autour ou double-cliquez pour l'agrandir ou réduire la fenêtre - c'est à dire la plupart des fonctionnalités que vous attendez d'un ordinateur de bureau système de fenêtrage.
Pour obtenir quelque chose d'encore plus près de ce que vous demandez, peut-être vous pourrait pirater quelque chose ensemble par la création de deux fenêtres. L'un, un standard décorée de la fenêtre de la scène, qui comprend l'écran de frontières, de l'autre une nudité ou transparent enfant stade toujours affiché en haut de la fenêtre principale et la superposition des frontières de la fenêtre principale avec un rendu personnalisé. Je pense que vous risquez de rencontrer des difficultés pour mettre en œuvre cette approche, je ne voudrais pas vous le recommande vraiment.
Vous pouvez l'essayer une scène de NUDITÉ style plutôt TRANSPARENT et voir si vous obtenez de meilleurs Windows natif intégration avec qui.
Il y a quelques ouvert demande de fonctionnalité actuellement prévue pour JavaFX d'être livrés avec le JDK8, Windows: support Aero effets de Verre pour les fenêtres de niveau supérieur, Mac: Soutien NSTexturedBackgroundWindowMask style pour windows et L'arrière-plan blanc créé dans un Stade devrait être créé - si nécessaire - dans la scène graphique, qui, une fois mis en œuvre, seront susceptibles de vous aider à atteindre votre objectif - voter pour eux, si ces caractéristiques sont importantes pour vous.
Aussi checkout VFXWindows qui est un open source de fenêtrage cadre de JavaFX.
Mise à jour
Est aussi en lien avec la Undecorator projet qui permet de créer facilement un JavaFX scène avec la norme réduire/agrandir/fermer/redimensionner commandes de chrome qui sont rendus par le JavaFX moteur plutôt que le système d'exploitation système de fenêtrage. Cela vous permet d'obtenir le genre de contrôle personnalisé sur la fenêtre de rendu qu'une application comme Ensemble de affiche.
Vous pouvez utiliser cette de la bibliothèque. Il est entièrement personnalisable JavaFx Étape (CustomStage). Vous pouvez voir en détail la description de comment l'utiliser dans ce CustomStage Wiki
Il a,