# JavaFX Sub-Fenster im Vordergrund halten



## godi (1. Nov 2012)

Hallo,

ich habe mit JavaFX ein Hauptfenster erstellt.
Aus diesem heraus rufe ich ein Unterfenster auf.
Jetzt möchte, solange das Unterfenster geöffnet ist das dieses vor dem Hauptfenster ist.
Also so wie zB das Druckerfenster bei beliebigen Programmen. Da ist dies auch immer im Vordergrund.

Ist dies möglich?
Wie mache ich dies?
Ich habe schon versucht das ich die "Stage" des Hauptfensters auf hide setze. Hat auch nicht zu dem gewünschten Erfolg geführt.

godi


----------



## Paddelpirat (1. Nov 2012)

Hi, das kannst du mit der Methode 
	
	
	
	





```
initModality
```
 erreichen. Also z.B.:


```
dialogStage.initModality(Modality.APPLICATION_MODAL);
```

Vielleicht auch noch ganz interessant in dem Zusammenhang:


```
dialogStage.initStyle(StageStyle.UTILITY);
```


----------



## godi (2. Nov 2012)

Vielen Dank!

Das funktioniert super! 
Und ich habe gestern ewig gesucht und nichts gefunden. :reflect:


----------



## Paddelpirat (2. Nov 2012)

Prima, dass es geklappt hat. Noch als kleine Ergänzung:
Um nicht die ganze Anwendung mit dem Dialog zu blockieren, kannst du auch zuerst die Methode 
	
	
	
	





```
initOwner
```
 aufrufen, mit dem Hauptfenster als Parameter und dann 
	
	
	
	





```
initModality
```
 auf 
	
	
	
	





```
Modality.WINDOW_MODAL
```
 setzen. Das ist dann nicht ganz so stark, sollte bei dir aber erstmal aufs gleiche hinauskommen.


----------



## MarkusM (13. Dez 2012)

Ich hänge  mich hier mal dran...

Das mit dem "Dialogfenster" klappt ja wunderbar, ich Suche jedoch nach einer Möglichkeit, dass das "Dialogfenster" nur innerhalb der Anwendung verschoben werden kann - also nicht nach außerhalb auf den Desktop. 

Vom Prinzip her möchte ich in einer Anwendung mehrere Fenster (Stages?) anzeigen die innerhalb der Anwendung in einem bestimmten Bereich verschoben werden können. Hat hier auch jemand eine Idee?

Mein erster Versuch ging in die Richtung das neue Fenster an ein Pane zu koppeln, aber irgendwie kriege ich da die Kurve nicht.


```
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBoxBuilder;
import javafx.scene.text.Text;
import javafx.stage.Modality;
import javafx.stage.Stage;


public class Dialog {

	public void openMessageBox(Pane pane){
	     Stage myDialog = new Stage();
	     pane.setStyle("-fx-background-color: black;");
	     myDialog.initModality(Modality.APPLICATION_MODAL);
             Scene myDialogScene = new Scene(VBoxBuilder.create()
	              .children(new Text("Hello! it's My Dialog."))
	              .alignment(Pos.CENTER)
	              .padding(new Insets(10))
	              .build());

          myDialog.setScene(myDialogScene);
          myDialog.show();
       }
}
```

Die Dialogklasse wird über einen Button aus einer JavaFX-Application heraus mit openMessagebox aufgerufen. Die Application enthält den Button und ein Pane in dem sich die MessageBox dann bewegen lassen soll.

Nur wie kriege ich die Stage an das Pane gebunden? Falls das überhaupt funktioniert?


----------



## MarkusM (13. Dez 2012)

Ich habe gerade gesehen, dass das Thema als "erledigt" gekennzeichnet wurde, daher habe ich einen eigenen Thread aufgemacht => Link


----------

