Abstract Windowing Toolkit

Slides:



Advertisements
Ähnliche Präsentationen
programmiert April-Juni 2003 von Knut Riechmann
Advertisements

Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Praktikum Systementwicklung
Java: Programmierung grafischer Oberflächen
Java: Programmierung grafischer Oberflächen
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
Java: Grundlagen der Objektorientierung
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider.
Java Layout Manager (JLM) Marc Dziadek
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG A bstract W indow T oolkit. DVG Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Objektorientierte Modellierung
AWT und JFC Abstract Windowing Toolkit
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Applets Java für’s Web.
Java: Programmierung grafischer Oberflächen
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Informatik – Programmierpraktikum Alexander Volodarski Gruppe 14
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Programmiervorkurs WS 2014/15 Methoden
Programmierpraktikum Java SS 2005
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Einführung in die OOP in Java
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Erstellung von Benutzerschnittstellen in der Programmiersprache Java.
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
Java Programme nur ein bisschen objektorientiert.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 1 Erstellung von Benutzerschnittstellen in der Programmiersprache Java.
Grafische Benutzeroberflächen mit Swing (2) Christoph Broschinski, Alexander Sczyrba Jan Krüger
Graphics Klasse, die alle grundlegenden Methoden zum Zeichnen und Schreiben bereitstellt (draw -Methoden, Methoden zu Fonts und Colors) Bereitstellung.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Wie überwacht man Objekte im "Alltag" ?
Praktische Informatik 1
Abstract Windowing Toolkit
Klassen in Java.
Praktische Informatik 1
Prof. Arnold Beck Einführung Java FX
„Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen.“
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Mit der Turtle Java Programmieren
Kurs: Programmieren in Java Tag 5
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Programmiermethodik Übung 7
Mit Java die Turtle steuern
Implementieren von Klassen
 Präsentation transkript:

Abstract Windowing Toolkit import java.awt.* Package aus der java Klassenbibliothek, stellt Klassen für graphische Benutzeroberflächen bereit Die Komponenten (Button, TextField usw.) basieren auf den Implementationen der zugrunde liegenden Plattform look & feel ist somit plattformbestimmt

Bestandteile Klassen zum Bau der Oberfläche Components Container LayoutManager Eventhandling Listener Adapterclasses Events

. . . Objekt Component Container Button Label Textfield List Panel . . . Panel Window Applet Frame Dialog

Components

special events

Einbau eines Controls Refrenzvariable erzeugen Button okButton; Objekt erzeugen okButton=new Button(“OK“); Control (Button) in Container einsetzen myPanel.add(okButton); add(okButton); Ggf. mit EventListener verbinden okButton.addActionListener(myActionListener);

Die Container Frame Das Hauptfenster einer Applikation Dialog Dialogfenster (modal/nicht modal) Applet Hauptfenster für ein Applet Panel Unsichtbarer Container, verhält sich nach außen, wie eine Component, kann je nach Layoutmanager Komponenten aufnehmen

Frame Nur für Applikationen auf dem, Desktop Eine Applikation hat genau ein Objekt der Klasse Frame Default LayoutManager ist BorderLayout Die Größe des Frame wird bestimmt durch die Funktionen public void setSize(int width, int height) public void pack()

Dialog Modal / nicht modal Muss immer mit einem Frame-Objekt vebunden sein, Applets können keine Dialoge haben Default LayoutManager ist BorderLayout Dient der Eingabe von Werten oder Einstellungen Es gibt vordefinierte Dialoge, wie FileOpenDialog oder PrintDialog

Applet Hat keinen Constructor sondern eine parameterlose init-Funktion. Ist immer in eine html-Seite eingebunden. Hat keinen Zugang zu Ressourcen des Rechners, auf dem es ausgeführt wird (Sandbox). Kann keine Dialoge öffnen und keine Menübars enthalten. Kann Netzverbindungen immer nur zu dem Host aufbauen, von dem es geladen worden ist. Für signierte Applets können Einschränkungen aufgehoben werden.

Panel Unsichtbarer Container. Verhält sich nach außen, wie eine Komponente. Eine Javaanwendung (Applet oder Applikation) kann beliebig viele Panels verwenden. Default LayoutManager ist FlowLayout. Kann auch als Grundlage zum Bau neuer Komponenten verwendet werden.

Die LayoutManager FlowLayout Alle Komponenten werden von links nach rechts nebeneinander angeordnet GridLayout Die Fläche wird in gleich große Zellen, angeordnet in Zeilen und Spalten eingeteilt Borderlayout Es stehen 5 Felder zur Verfügung; in jedes Feld kann genau eine Komponente aufgenommen werden; die Felder sind entspredchend ihrer Lage nach den Himmelsrichtungen benannt CardLayout Wie bein einem Stapel Spielkarten wird jede Komponente auf einer neuen Karte abgebildet; es ist immer nur die oberste Karte sichtbar GridbagLayout Der universellste Layoutmanager - etwas komplizierter

FlowLayoutPanel public class FlowLayoutPanel extends Panel import java.awt.*; import java.awt.event.*; public class FlowLayoutPanel extends Panel { Button b1=new Button("Max"); Button b2=new Button("Mexi"); Button b3=new Button("Miss"); Button b4=new Button("Murks"); Button b5=new Button("Der große Rest"); public FlowLayoutPanel() setFont(new Font("System", Font.PLAIN, 24)); setLayout(new FlowLayout()); add(b1); add(b2); add(b3); add(b4); add(b5); }

public static void main(String args[]) { FlowLayoutPanel p=new FlowLayoutPanel(); Frame f=new Frame("FlowLayoutPanel"); f.add(p); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); } }); f.setVisible(true); f.pack();

Constructor BorderLayoutPanel public BorderLayoutPanel() { setFont(new Font("System", Font.PLAIN, 24)); setLayout(new BorderLayout()); add(b1,BorderLayout.NORTH); add(b2,BorderLayout.EAST); add(b3,BorderLayout.SOUTH); //add(new Button("TEST"),BorderLayout.SOUTH); add(b4,BorderLayout.WEST); add(b5,BorderLayout.CENTER); }

Constructor GridLayoutPanel public GridLayoutPanel() { setFont(new Font("System", Font.PLAIN, 24)); setLayout(new GridLayout(3,2,5,5)); add(b1); add(b2); add(b3); add(b4); add(b5); }

Constructor CardLayoutPanel CardLayout cards=new CardLayout(); public CardPanel() { setFont(new Font("System",Font.PLAIN,22)); setLayout(cards); add(b1); b1.addActionListener(this); add(b2); b2.addActionListener(this); add(b3); b3.addActionListener(this); add(b4); b4.addActionListener(this); add(b5); b5.addActionListener(this); } public void actionPerformed(ActionEvent e) cards.next(this);

GridbagLayout Fläche wird in Gitter eingeteilt. Die Größe einer Zelle richtet sich nach der größten Komponente in jeweils Zeile und Spalte Zellen können zu größeren Zellen zusammengefasst werden Zellen können sequenziell oder gezielt belegt werden Umfangreiche Einflussnahme auf Darstelleung ist möglich Einstellungen erfolgen mit Hilfe eines GridBagConstraints -objektes

GridbagConstraints

import java.awt.*; import java.awt.event.*; public class GridBagLayoutPanel extends Panel { GridBagConstraints C=new GridBagConstraints(); Button b1=new Button("Max"); Button b2=new Button("Mexi"); Button b3=new Button("Miss"); Button b4=new Button("Murks"); Button b5=new Button("Der große Rest"); TextArea ta=new TextArea(20,100); Label l=new Label ("Eingabe:"); TextField tf=new TextField(100);

public GridBagLayoutPanel() { setLayout((new GridBagLayout())); C.weightx=1.0;C.weighty=1.0; C.fill=GridBagConstraints.BOTH; C.gridx=0; C.gridy=0; add(l,C); C.gridx=1; C.gridwidth=GridBagConstraints.REMAINDER; add(tf,C); C.gridx=0; C.gridy=1; add(ta,C); C.gridwidth=1; C.gridy=2; add(b1,C); C.gridx=GridBagConstraints.RELATIVE; add(b2,C); add(b3,C); add(b4,C); add(b5,C); }

public static void main(String args[]) { GridBagLayoutPanel p=new GridBagLayoutPanel(); Frame f=new Frame("GridBagLayoutPanel"); f.setLayout(new BorderLayout()); f.add(p, BorderLayout.CENTER); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) { System.exit(0); } }); f.pack(); f.setVisible(true); }