Diskuze: Nová stage
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 17 zpráv z 17.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, to je standartní chování oken. Pokud máš něco fullScreen, tak nemůžeš mít jiné okno, které by dokázalo ten fullScreen překrýt.
Moc děkuji za odpověď. Já nepotřebuju aby se to nové okno otevřelo ve fullsreenu je to okno kam se jenom zadají potřebné hodnoty Takže potřebuji aby se to okno otevřelo "na tom" fullscreenu jakože předním. Možná si na to odpověděl jenom se ujišťuji že jsem to napsal aspon trochu pochopitelný A pokud si to pochopil opravdu to nějak nejde ?
Takže potřebuji aby se to okno otevřelo "na tom" fullscreenu jakože předním.
Podle mě to není možné. Třeba se pletu a někdo mě opraví.
Taky se domnívám, že to nejde, řešení je používat dnes oblíbené bezokrajové okno, které vypadá jako fullscreen, používám to v každé hře, které to podporuje, právě z důvodu, že ho lze překrýt bez minimalizace toho předchozího
Přímo v nějakém Java frameworku ti to neřeknu. Ale hledej pojem "borderless window"
Pokud jedeš JavaFX, tak při inicializace stage můžeš použít tento kód:
primaryStage.initStyle(StageStyle.UNDECORATED)
Tím zlikviduješ veškerý rámeček okna a zruší se tím i tlačítka pro minimalizaci, maximalizaci a konec
Hele tk jsem to našel ale stejně to nefunguje...
Ano přesně todle jsem použil ale i přes to se mi program minimalizuje....
Tohle ale nezabrání minimalizaci, jenom upraví vzhled okna.
No já bych potřeboval aby se program neminimalizoval když to okno otevřu
Podle dokumentace
StageStyle.UNDECORATED
To že z okna odstaníte tydle věci nemá nic společného s tím aby ho Windows bral jako Bezokrajové okno. podle prvních pár linků na googlu to prý JavaFX neumí A mnoho lidí na to používá Swing, ale třeba to není pravda.
Hmm opravdu si stím nevím rady.... Jestli to v javafx neni tk je to naprd a zkusím to najít ve swingu Takže moc děkuji za rady
Bereš to za špatný konec, nepotřebuješ novou stage ale pouhý Dialog, který bude potomkem té tvé fullscreen stage. Potom se ti ta stage nebude minimalizovat. Bohužel teď nemohu poskytnout konkrétní ukázku kódu, jsem v procesu stěhování a počítač je v krabici:) (píšu z mobilu).
Takže abych to doplnil:
<a href='http://code.makery.ch/blog/javafx-dialogs-official/'>Tady je moc pěkný průvodce Dialogy, které JavaFX podporuje</a> Tebe zřejmě bude zajímat Text Input Dialog a nebo Custom Login Dialog, ale princip je prakticky stejný u všech typů Dialogů, takže v rámci zachování co největší jednoduchosti ukážu na Alertu
Předpokládejme, že máš instanci Stage nazvanou stage. Vytvoř si instanci Alertu nazvanou prostě alert:
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Upozornění");
alert.setContentText("Hello fullscreen world");
Dále přepokládejme, že máš ve stage tlačítko Button nazvané button a chceš aby se alert ukázal, když na něj uživatel klikne.
button.setOnAction((ActionEvent event) -> {
alert.showAndWait();
});
Teď se ti sice alert otevře, ale vlastní stage se minimalizuje. Tomu se snadno zabrání tím, že se alert nastaví jako 'majetek' (v předchozím postu jsem nepřesně psal o potomkovi) té stage:
alert.initOwner(stage);
Ale pozor je tam jedna vyfikundace - initOwner() je třeba volat AŽ POTÉ, co už bylo zavoláno show() na stage, jinak to spadne s InvocationTargetException.
Strašlivě ti děkuji ! Přesně todle funguje i u Stage Fkt moc děkuju kdyby to šlo dal bych ti že si to vyřešil ty Moc děkuju
Zobrazeno 17 zpráv z 17.