JavaFX: Stage konfigurieren

Stage in JavaFXFenster, Window, Frame, Rahmen, Stage, Bühne, etc. – es gibt unzählige Namen für das Objekt meines heutigen Blogbeitrags. In JavaFX verwendet man hauptsächlich den Namen „Stage„. Es bezeichnet das sichtbare „Fenster“ einer JavaFX-Anwendung und für dieses gibt es eine Vielzahl von Einstellungsmöglichkeiten. Neben der Festlegung der Größe zeige ich, wie man ein Icon setzt, den Vollbildmodus aktiviert oder den Titel setzt.

 

 

Größe anpassen

Mit den folgenden Parametern bestimmt man die Größe des Fensters. Früher konnte man noch die Position des Fensters bestimmten.

		    	// groessenanpassung des Benutzers erlauben
		    	primaryStage.setResizable(false);
		    	
		    	// hoehe und breite der Stage festlegen
		    	primaryStage.setWidth(800);
		    	primaryStage.setHeight(600);
		    	// oder min/max festlegen
		    	primaryStage.setMaxWidth(800);
		    	primaryStage.setMaxHeight(600);
		    	primaryStage.setMinWidth(800);
		    	primaryStage.setMinHeight(600);

 

Icon hinzufügen

Das Icon wird in Windows XP oben links im Fenster und unten in der Taskleiste angezeigt. Das Bild befindet sich im gleichen Package, wie die Klasse!

		    	// miniicon setzen
		    	primaryStage.getIcons().add(new Image(Start.class.getResourceAsStream("logo.jpg")));

javafx-stage-icon

 

Fullscreen / Vollbildmodus

Über dieses Thema habe ich schon einen Blogbeitrag geschrieben!

		    	// Vollbildmodus ausschalten (default aus)
		    	primaryStage.setFullScreen(false);

 

Titel setzen


		    	// Titel setzen
				primaryStage.setTitle("AxxG - Stage Beispiel");

javafx-stage-titel

 

Szene setzen und ggf. Größe der Stage anpassen

				// Szene setzen
				primaryStage.setScene(scene);
				// Groesse der Stage an Scene anpassen
				primaryStage.sizeToScene();

 

Das gesamte Skript

package de.axxg.stage;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Start extends Application {

	

		public static void main(String[] args) {
		        launch(args);
		    }
		     

		    @Override
		    public void start(Stage primaryStage) {
		    	// +++++++++++++++++++++++++++++++++++++++++++++
		    	// Center
		    	// +++++++++++++++++++++++++++++++++++++++++++++
		    	
		    	 // Layout
		    	GridPane grid = new GridPane();
		        grid.setAlignment(Pos.CENTER);
		        grid.setHgap(10);
		        grid.setVgap(10);
		        grid.setPadding(new Insets(25, 25, 25, 25));
		   
		        // Ueberschrift
		        Text scenetitle = new Text("Hallo AxxG-Leser");
		        scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
		        grid.add(scenetitle, 0, 0, 2, 1);
		   
		        // Vorname
		        Label vornameLB = new Label("Vorname:");
		        grid.add(vornameLB, 0, 1);
		   
		        TextField vornameTF = new TextField();
		        grid.add(vornameTF, 1, 1);
		         
		        // Nachname
		        Label nachnameLB = new Label("Nachname:");
		        grid.add(nachnameLB, 0, 2);
		   
		        TextField nachnameTF = new TextField();
		        grid.add(nachnameTF, 1, 2);
		   
		        // Buttons
		        Button addBtn = new Button("eintragen");
		        Button okBtn = new Button("Alle anzeigen");
		   
		        // Buttongruppe
		        HBox hbBtn = new HBox(10);
		        hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
		        hbBtn.getChildren().add(addBtn);
		        hbBtn.getChildren().add(okBtn);
		        grid.add(hbBtn, 1, 4);

				// Szene
				Scene scene = new Scene(grid);
				
		    	// +++++++++++++++++++++++++++++++++++++++++++++
		    	// Stage konfigurieren
		    	// +++++++++++++++++++++++++++++++++++++++++++++
				
		    	// groessenanpassung erlauben
		    	primaryStage.setResizable(false);
		    	
		    	// hoehe und breite der Stage festlegen
		    	primaryStage.setWidth(800);
		    	primaryStage.setHeight(600);
		    	// oder min/max festlegen
		    	primaryStage.setMaxWidth(800);
		    	primaryStage.setMaxHeight(600);
		    	primaryStage.setMinWidth(800);
		    	primaryStage.setMinHeight(600);
		    	
		    	// miniicon setzen
		    	primaryStage.getIcons().add(new Image(Start.class.getResourceAsStream("logo.jpg")));
		    	
		    	// Vollbildmodus ausschalten (default aus)
		    	primaryStage.setFullScreen(false);
		    	
		    	// Titel setzen
				primaryStage.setTitle("AxxG - Stage Beispiel");
				
				// Szene setzen
				primaryStage.setScene(scene);
				primaryStage.sizeToScene();
				
				// Stage anzeigen
				primaryStage.show();
				
				
			}


	}

 

Download

Für Faule gibt es hier ein fertiges Projekt…

Java Version JDK 1.7.0_11 Inhalt gepacktes Projekt
JavaFX Version 2.2.4 Größe 4.018 KB (~4 MB)
IDE Eclipse IDE Version 3.8.1 Endung *.zip
Preis kostenlos Lizenz Creative Commons Lizenzvertrag

JavaFX Stage

 

Die Quellen

 

Copyright © 2013 AxxG – Alexander Gräsel



Kommentar verfassen