• Keine Ergebnisse gefunden

PROCESSING PROCESSING

N/A
N/A
Protected

Academic year: 2022

Aktie "PROCESSING PROCESSING"

Copied!
20
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

PROCESSING PROCESSING

...

...

Created by Michael Kirsch & Beat Rossmy

(2)

INHALT

INHALT

(3)

JAVAFX

JAVAFX

(4)

WIE KÖNNEN WIR IN JAVA WIE KÖNNEN WIR IN JAVA

GRAFISCHEN OUTPUT GRAFISCHEN OUTPUT

ERZEUGEN?

ERZEUGEN?

(5)

JAVAFX JAVAFX

JavaFX ist ein Framework, dass es uns ermöglicht grafische Elemente und die Interaktion mit diesen in Java zu realisieren.

import javafx.application.Application;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.stage.Stage;

public class Main extends Application {

public void start(Stage primaryStage) throws Exception{

Group group = new Group();

primaryStage.setTitle("Hello World");

primaryStage.setScene(new Scene(group, 300, 275));

primaryStage.show();

}

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

(6)

Unsere Main Klasse muss dazu die Klasse Application erweitern.

// imports ...

public class Main extends Application {

//...

}

(7)

Der Programmstart wird über die main Methode und den Aufruf von launch(args) realisiert.

// imports ...

public class Main extends Application {

//...

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

}

(8)

Damit verlagert sich für uns der Programmaufbau in die start Methode, welche Main implementieren muss.

// imports ...

public class Main extends Application {

public void start(Stage primaryStage) throws Exception{

Group group = new Group();

primaryStage.setTitle("Hello World");

primaryStage.setScene(new Scene(group, 300, 275));

primaryStage.show();

}

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

} }

(9)

Durch den Aufruf von launch wird ein Objekt von Main erzeugt, wir können also als Felder der Klasse in start verwenden, ohne

dass diese static sein müssen.

// imports ...

public class Main extends Application { int x;

public void start(Stage primaryStage) throws Exception{

// ...

x = 100;

}

// ...

(10)

start wird ein Objekt der Klasse Stage übergeben. Dieses ist unsere oberste grafische Ebene. In der Stage ist eine Scene

enthalten, welche letztlich eine Gruppe unserer grafischen Elemente enthällt.

// ...

public void start(Stage primaryStage) throws Exception{

Group group = new Group();

primaryStage.setTitle("Hello World");

primaryStage.setScene(new Scene(group, 300, 275));

primaryStage.show();

}

// ...

(11)

Der Inhalt dieser Gruppe wird typischer Weise durch die Einbindung eines FXML Files erzeugt. Wir werden dies aber

manuell durchführen.

(12)

Über import können externe Softwarepakete eingebunden werden. Dies bedeutet, dass wir Funktionalitäten in Form von

Klassen nun in unserer Anwendung verwenden können.

import javafx.application.Application;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.stage.Stage;

// ...

(13)

ANWENDUNG

ANWENDUNG

(14)

Erzeuge ein neues Projekt, wähle dazu die Option JavaFX.

(15)
(16)

http://www.cinema52.com/2013/wp-content/uploads/2013/09/Nedry.png

Es wird automatisch die folgende Main Klasse erzeugt.

package sample;

import javafx.application.Application;

import javafx.fxml.FXMLLoader;

import javafx.scene.Parent;

import javafx.scene.Scene;

import javafx.stage.Stage;

public class Main extends Application {

@Override

public void start(Stage primaryStage) throws Exception{

Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));

primaryStage.setTitle("Hello World");

primaryStage.setScene(new Scene(root, 300, 275));

primaryStage.show();

}

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

} }

(17)

Wir entfernen diese (zur FXML Einbindung des nötigen) Elemente.

package sample;

import javafx.application.Application;

//import javafx.fxml.FXMLLoader;

//import javafx.scene.Parent;

import javafx.scene.Scene;

import javafx.stage.Stage;

import javafx.scene.Group; // +

public class Main extends Application {

public void start(Stage primaryStage) throws Exception{

Parent root = new Group(); //FXMLLoader.load(getClass().getResource("sample primaryStage.setTitle("Hello World");

primaryStage.setScene(new Scene(root, 300, 275));

primaryStage.show();

}

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

(18)

Und erhalten:

package sample;

import javafx.application.Application;

import javafx.scene.Scene;

import javafx.stage.Stage;

import javafx.scene.Group;

public class Main extends Application {

public void start(Stage primaryStage) throws Exception{

Parent root = new Group();

primaryStage.setTitle("Hello World");

primaryStage.setScene(new Scene(root, 300, 275));

primaryStage.show();

}

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

} }

(19)

Und erhalten:

package sample;

import ...

import javafx.scene.shape.Circle;

public class Main extends Application { Circle ball;

public void start(Stage primaryStage) throws Exception{

Parent root = new Group();

ball = new Circle (100,100,50);

root.getChildren().add(ball);

primaryStage.setTitle("Hello World");

primaryStage.setScene(new Scene(root, 300, 275));

primaryStage.show();

}

(20)

QUELLEN

QUELLEN

Referenzen

ÄHNLICHE DOKUMENTE

Created by Michael Kirsch & Beat Rossmy... Sto

Eine schriftliche Prüfung ndet Ende des Semesters statt, in der der Sto der Vorlesung geprüft wird.. Der Termin wird

Neue Position bei Tastendruck (gezeichnet wenn gehalten). // deklariere Variablen zum Speichern

Created by Michael Kirsch & Beat Rossmy... Sto

public ColorCircle (int x, int y, char c) { // Aufruf des Konstruktors der Elternklasse.. AUFGABE 2

static markiert Felder oder Methoden einer Klasse, die auch ohne das Erzeugen eines Objekts existieren. Diese

Erzeuge in der main Methode ein Objekt der Klasse Ball und rufe auf diesem Objekt innerhalb einer Schleife move und plot auf. Lasse sich die Schleife 10.000

We propose and implement a novel general-purpose index structure that can efficiently process multidimensional range and point query workloads on data stored in main memory.. It