JavaFX vollständig angepasste windows?
Ich würde gerne ein Programm haben, wo ich ganz individuell auf dem Fenster das Erscheinungsbild. Bisher habe ich gelernt, dass ich entfernen können Sie die typischen Fenster, die Dinge mit:
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()
}
}
Alles andere funktioniert einwandfrei, außer, dass die Fenster ziehen, Doppelklick zu maximieren, ziehen auf dem Bildschirm oberen Rand unter Windows sollte aktiv zu maximieren, etc. Die native Windows-Funktionen fehlen völlig.
Kann ich irgendwie ziemlich leicht anpassen, die gesamte erscheinen des Fensters, ohne alle diese netten Funktionen.
Bin ich über etwas sprechen, wie Adobe Photoshop, das sieht völlig anders, aber dennoch behält diese Funktionen (oder implementiert, die auf Ihrer Benutzeroberfläche manuell).
Wäre es ein Anfang wenn ich wenigstens implementieren Drag + Fenster-Schaltflächen für den Anfang. Ich bin targeting Linux, Mac und Windows hier.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen die angepassten Fenster Aussehen und das handling in der Ensemble Beispielanwendung, die beinhaltet den Quellcode. Download der Quelle, bauen Sie es und führen Sie es als standalone-Anwendung und nicht eingebettet im browser. Es ist nicht genau das, was Sie fordern, weil Sachen wie das ziehen auf dem Bildschirm oberen Rand aktivieren Maximierung wird nicht funktionieren denke ich, aber es sollte sehr nahe und man konnte immer etwas code selbst, der maximiert das Fenster, wenn es gezogen wurde in der Nähe der oberen Kante. Das Ensemble Fenster verfügt über Funktionen wie benutzerdefinierte Größe Dekorationen, minimieren, maximieren, schließen-icons, ein Bereich am oberen Rand des Fensters können Sie verwenden, um ziehen Sie das Fenster auf oder doppelklicken, um zu maximieren oder minimieren Sie das Fenster - d.h. die meisten der standard-Funktionen, die Sie erwarten würden von einem desktop-windowing-system.
Bekommen sogar noch etwas näher, was Sie Fragen, könnten Sie vielleicht auch was hacken zusammen, indem zwei windows. Der eine, ein standard eingerichteten Bühne Fenster, in dem Bildschirm Grenzen, die andere eine undekorierte oder transparent, Kind Bühne immer angezeigt auf der Oberseite des Hauptfenster und die überlagerung der Grenzen der Haupt-Fenster mit einer benutzerdefinierten rendering. Ich glaube, Sie können in Schwierigkeiten geraten, die versuchen, diesen Ansatz zu implementieren, so würde ich nicht wirklich empfehlen.
Können Sie gerne versuchen, eine SCHMUCKLOSE Bühne Stil eher als TRANSPARENT und sehen, ob man besser die native Windows-integration mit.
Gibt es einige offenen feature request aktuell geplant für JavaFX werden geliefert mit JDK8, Windows: Unterstützung von Aero Glass Effekte für die top-level-Fenster, Mac: Unterstützung NSTexturedBackgroundWindowMask Stil für windows und Die festen weißen hintergrund erstellt in einem Schritt erstellt werden soll - wenn nötig - im Scenegraph, die, wenn Sie umgesetzt wird, wird wahrscheinlich helfen Sie erreichen Ihr Ziel - für Sie zu Stimmen, wenn diese Funktionen für Sie wichtig sind.
Auch Kasse VFXWindows, die eine open-source-windowing-framework für JavaFX.
Update
Ebenfalls verwandt ist das Undecorator Projekt, das Ihnen ermöglicht, einfach erstellen Sie eine JavaFX-Bühne mit standard-minimieren/maximieren/schließen/verkleinern Chrom-Steuerelemente, die gerendert werden über die JavaFX-Motor eher als die OS-windowing-system. Dies ermöglicht es Ihnen, um die benutzerdefinierte Kontrolle über die Fenster Rendern, dass eine Anwendung wie Ensemble zeigt.
Können Sie diese Bibliothek. Es ist eine vollständig anpassbare JavaFx-Bühne (CustomStage). Sehen Sie im detail die Beschreibung, wie man es in diesem CustomStage Wiki
Es hat,