dvg2 - 091 a bstract w indow t oolkit. dvg2 - 092 4 als standardisierte portable grafikschnittstelle...

40
DVG2 - 09 1 Abstract Window Toolkit

Upload: bathildis-boger

Post on 05-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 1

Abstract Window Toolkit

Page 2: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 2

Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package „AWT“ - „Abstract Window Toolkit“.

AWT enthält Klassen zur Programmierung allgemeiner Grafikelemente, z.B.:– Fenster– Menüs, Buttons– Druckeranschluß– Drag and Drop– Mausanschluß– Grafikimport, -export– Farben– Fonts– Geometrieobjekte

Page 3: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 3

Component-Klassen

Component

Button Canvas Checkbox Choice

Container

Label List Scrollbar

TextComponent

Panel ScrollPane Window TextArea TextField

Applet FrameDialog

FileDialog

Page 4: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 4

Die Klasse Component

Eine Component ist ein Objekt, das eine graphische Darstellung besitzt, das auf dem Bildschirm angezeigt werden kann und das mit dem Nutzer interagieren kann. Z.B.:– Buttons– Checkboxen– Scrollbars u.s.w.

Objekte der Klasse Component werden kaum direkt verwendet, sondern nur als Instanziierungen abgeleiteter Klassen.

Die Methoden und Attribute werden an alle abgeleiteten Klassen vererbt.

Page 5: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 5

Wichtige Methoden von Component

public Color getBackground()bestimmt die Hintergrundfarbe

public void setBackground (Color c)setzt die Hintergrundfarbe

public Color getForeground()bestimmt die Vordergrundfarbe

public void setForeground (Color c)setzt die Vordergrundfarbe

public Font getFont()bestimmt den aktuellen Font

public void setFont (Font f)setzt den aktuellen Font

Page 6: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 6

Die Klasse Color Beschreibt Farben in verschiedenen Farbmodellen Konstruktoren

– Color (float r, float g, float b)0.0 <= r, g, b <= 1.0

– Color (int r, int g, int b)0 <= r, g, b <= 255

Attributestatic Color black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red,white, yellow

Methoden– int getR(), int getG(), int getB()

bestimmt die Farbanteile– Color brighter(), Color darker()

erzeugt eine etwas hellere bzw. dunklere Farbe

Page 7: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 7

Die Klasse Font

Beschreibt Schriftarten und -eigenschaften Konstruktor

Font (String name, int style, int size)– name : "Dialog", "DialogInput", "Monospaced", "Serif", "SansSerif", "Symbol"

– style : PLAIN, BOLD, ITALIC, BOLD|ITALIC– size : Schriftgröße

Page 8: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 8

Die Klasse Container

Beschreibt AWT-Objekte, die andere Objekte enthalten können. Wird wie Component selten direkt benutzt. Definiert Methoden zum Verwalten von in dem Container

enthaltenen anderen AWT-Objekten.– public Component add (Component comp)– public void remove(Component comp)– public int getComponentCount()– public Component [] getComponents()– public Component getComponentAt (int x, int y)

Methoden zum Verwalten des Layouts– public void setLayout (LayoutManager mgr)– public LayoutManager getLayout()– public Insets getInsets()

Page 9: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 9

Methoden zum „Zeichnen“ des Inhaltes– public void paint (Graphics g) – public void update (Graphics g)

Page 10: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 10

Interface LayoutManager

Beschreibt das Layout eines Containers Implementierungen sind

– GridLayout– FlowLayout– CardLayout– GridbagLayout– BorderLayout

Page 11: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 11

Die Klasse Insets

Beschreibt die Breiten der Ränder eines Containers. Konstruktor

Insets(int top, int left, int bottom, int right) Attribute

public int toppublic int leftpublic int bottompublic int right

Page 12: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 12

Methoden der Klasse Graphics public void drawString(String str, int ix, int iy)

– zeichnet den Text str an die Position (ix,iy) public void drawLine(int ix1, int iy1, int ix2,

int iy2)– zeichnet eine Linie von (ix1,iy1) nach (ix2,iy2)

public void drawRect(int ix, int iy, int ib, int ih)– zeichnet ein Rechteck mit der linken oberen Ecke (ix,iy) und

der Breite ib und der Höhe ih public void fillRect(int ix, int iy, int ib, int

ih)– zeichnet ein ausgefülltes Rechteck

Page 13: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 13

public void drawOval(int ix, int iy, int ib, int ih)– zeichnet ein Oval innerhalb des beschriebenen Rechtecks

public void fillOval(int ix, int iy, int ib, int ih)– zeichnet ein ausgefülltes Oval

public void drawArc(int ix, int iy, int ib, int ih, int start, int arc)– zeichnet einen Auschnitt eines Ovals innerhalb des

beschriebenen Rechtecks mit dem Startwinkel start und dem Öffnungswinkel arc

public void fillArc(int ix, int iy, int ib, int ih, int start, int arc)– zeichnet einen ausgefüllten Auschnitt eines Ovals

Page 14: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 14

public void drawPolygon(int[] ix, int[] iy, int n)– zeichnet ein geschlossenes Polygon mit den Ecken (ix[i],iy[i]) für i=0...n-1

public void fillPolygon(int[] ix, int[] iy, int n)– zeichnet ein geschlossenes ausgefülltes Polygon

public void drawPolyline(int[] ix, int[] iy, int n)– zeichnet einen Polygonzug mit den Ecken (ix[i],iy[i])

für i=0...n-1

Page 15: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 15

Die Klasse Window Window-Objekte Windows auf der obersten Hirarchie-Stufe. Windows enthalten keinen Rand und kein Menü. Windows werden üblicherweise nicht selbständig erzeugt. Methoden

– public void dispose()löschen des Windows und aller Subkomponenten

– public void pack()verkleinert das Window derartig, daß alle Komponenten hineinpassen

– public void show()macht das Window sichtbar

– public void toBack()legt das Window nach hinten

– public void toFront()legt das Window nach vorn

Page 16: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 16

Die Klasse Frame

Frame ist ein komplettes Fenster mit Titel und Rand. Konstruktoren

– Frame()erzeugt Frame ohne Titel

– Frame (String title)erzeugt Frame mit Titel

Methoden– public void setMenuBar(MenuBar mb)

definiert einen Menübalken am Kopf des Frames– public void setResizable(boolean resizable)

bestimmt, ob das Frame in der Größe verändert werden kann

Page 17: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 17

Die Klasse Label Erzeugt ein Label mit oder ohne Text. Konstruktoren

– Label()erzeugt Label ohne Text

– Label(String text)erzeugt Label mit Text

– Label(String text, int alignment)erzeugt Label mit Text und legt die Ausrichtung des Textes fest.alignment = Label.LEFT, Label.RIGHT, Label.CENTER

Methoden– public String getText()– public void setText(String text)

Page 18: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 18

Die Klasse Button

Erzeugt eine Schaltfläche.Organisiert die Reaktion auf Betätigung der Schaltfläche.

Konstruktoren– Button()

erzeugt Schaltfläche ohne Beschriftung– Button(String label)

erzeugt Schaltfläche mit Beschriftung Methoden

– public String getLabel()– public void setLabel(String label)– public String getActionCommand()– public void setActionCommand (String command)

lesen bzw. setzen das Kommando, das beim Betätigen der Schaltfläche an den ActionListener gesendet wird

Page 19: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 19

public void addActionListener(ActionListener l)Hinzufügen eines ActionListeners

public void removeActionListener(ActionListener l)Löschen eines ActionListeners

Page 20: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 20

Beispiel

import java.awt.*;

public class t{

public static void main (String [] args){

tFrame f = new tFrame("AWT mit Buttons"); f.setBounds(200,100,400,300); f.setBackground(Color.yellow); f.show();}

}

Page 21: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 21

import java.awt.*;

public class tFrame extends Frame{

tFrame(String title){ super(title); setLayout(new GridLayout(2,1)); Button b1 = new Button(); b1.setBackground(Color.cyan); add (b1); Button b2 = new Button("Button"); b2.setBackground(Color.blue); add (b2);}

}

Page 22: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 22

Das Interface ActionListener

Implementierungen dieses Interfaces, dienen der Behandlung von ActionEvents. Diese werden ausgelöst, wenn:– ein MenuItem ausgewählt wird,– ein Button betätigt wird– in einem TextField Return gedrückt wird– ein Feld in einer List ausgewählt wird

Es muß eine Methode implementiert werden:– public void actionPerformed(ActionEvent e)

diese Methode wird aufgerufen, wenn oben genannte Ereignisse eintreten

Page 23: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 23

Die Klasse ActionEvent Wird ausgelöst von

– MenuItem– Button– TextField– List

Methoden– public String paramString()

liefert eine Zeichenkette, die die wesentlichen Informationen über das eingetretene Ereignis enthält

– public String getActionCommand()liefert die Zeichenkette, die standardmäßig oder mit setActionCommand(String command) als Kommandozeichenkette gesetzt wurde.

Page 24: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 24

– public int getModifiers()gibt die Tastencodes der gedrückten Modifizierer aus :

• SHIFT_MASK• CTRL_MASK• META_MASK• ALT_MASK

Page 25: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 25

Beispiel

import java.awt.event.*;

public class tAL implements ActionListener{

public void actionPerformed(ActionEvent e){ System.out.println( "e.getActionCommand() = "+e.getActionCommand()); System.out.println( "e.getModifiers() = "+e.getModifiers()); System.out.println( "e.paramString() = "+e.paramString());}

}

Page 26: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 26

import java.awt.*;import java.awt.event.*;

public class tFrame extends Frame{

tFrame(String title){... ActionListener al = new tAL(); b1.setActionCommand( "unbeschriftete Schaltflaeche"); b1.addActionListener(al); b2.addActionListener(al);}

}

Page 27: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 27

Alles zusammen

import java.awt.*;import java.awt.event.*;

public class tAlles extends Frame implements ActionListener{

public static void main (String [] args){

Frame f = new tAlles("AWT mit Buttons"); f.setBounds(200,100,400,300); f.setBackground(Color.yellow); f.show();}

Page 28: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 28

Alles zusammen

tAlles(String title){ super(title); setLayout(new GridLayout(2,1)); Button b1 = new Button(); b1.setBackground(Color.cyan); add (b1); Button b2 = new Button("Button"); b2.setBackground(Color.blue); add (b2);

b1.setActionCommand( "unbeschriftete Schaltflaeche"); b1.addActionListener(this); b2.addActionListener(this);}

Page 29: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 29

Alles zusammen

public void actionPerformed(ActionEvent e){ System.out.println( "e.getActionCommand() = "+e.getActionCommand()); System.out.println( "e.getModifiers() = "+e.getModifiers()); System.out.println( "e.paramString() = "+e.paramString());}

}

Page 30: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 30

Die Klasse Canvas

Die Klasse Canvas beschreibt leere Bereiche des Fensters, in denen graphische Objekte (Linien, Rechtecke, Ellipsen u.s.w.) plaziert werden können.

KonstruktorCanvas()erzeugt ein neues Canvas

Methodenpublic void paint(Graphics g)zeichnet die Graphiken des Canvas neu

Page 31: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 31

Beispiel

public class tFrame extends Frame

{

tFrame(String title)

{

super(title);

setLayout(new GridLayout(2,1));

Canvas c = new tCanvas();

c.setBackground(Color.cyan);

add (c);

Button b = new Button("Button");

b.setBackground(Color.blue);

add (b);

}

}

Page 32: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 32

import java.awt.*;

public class tCanvas extends Canvas

{

public void paint(Graphics g)

{

g.drawLine(10,70,90,20);

g.drawString("Das ist ein Text",100,50);

g.drawString("g.drawLine(10,70,90,20)",300,50);

g.drawString(

"g.drawString(\"Das ist ein Text\",100,50)",300,70);

...

}

}

Page 33: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 33

Die Klasse Checkbox

Erzeugt Auswahlknöpfe Konstruktoren

– Checkbox()Knopf ohne Beschriftung

– Checkbox(String label)Knopf mit Beschriftung

– Checkbox(String label, boolean state)Knopf mit Beschriftung mit angegebenen Status: state==true heißt Knopf ist gedrückt

– Checkbox(String label, boolean state, CheckboxGroup group)Knopf mit Beschriftung mit angegebenen Status, sowie Einsortierung in eine Checkbox-Gruppe

Page 34: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 34

Methoden– public String getLabel()– public void setLabel(String label)– public boolean getState()– public void setState (boolean state)– public CheckboxGroup getCheckboxGroup()– public void setCheckboxGroup (CheckboxGroup group)

– public void addItemListener(ItemListener l)fügt einen ItemListener hinzu

– public void removeItemListener(ItemListener l)löscht einen ItemListener

Page 35: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 35

Die Klasse CheckboxGroup

Dient der Gruppierung von Checkboxen zu „Radiobuttons“. Konstruktor

CheckboxGroup() Methoden

– public Checkbox getSelectedCheckbox()– public void setSelectedCheckbox(Checkbox box)

Page 36: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 36

BeispieltFrame(String title){ super(title); setLayout(new GridLayout(2,3)); Checkbox cb11 = new Checkbox("cb11",true); add (cb11); Checkbox cb12 = new Checkbox("cb12"); add (cb12); Checkbox cb13 = new Checkbox("cb13",true); add (cb13); CheckboxGroup cbg = new CheckboxGroup(); Checkbox cb21 = new Checkbox("cb21",true,cbg); add (cb21); Checkbox cb22 = new Checkbox("cb22",false,cbg); add (cb22); Checkbox cb23 = new Checkbox("cb23",false,cbg); add (cb23);}

Page 37: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 37

Das Interface ItemListener

Implementierungen von ItemListener dienen der Behandlung von ItemEvents. Diese werden erzeugt von:– Checkbox– Choice– CheckboxMenuItem– List– ItemSelectable

Es muß eine Methode implementiert werden:public void itemStateChanged(ItemEvent e)

Page 38: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 38

Die Klasse ItemEvent

Methoden– public Object getItem()

gibt das Object aus, das dieses Ereignis ausgelöst hat– public int getStateChange()

gibt den neuen Status des Objectes aus: SELECTED oder DESELECTED

– public String paramString()liefert eine Zeichenkette, die die wesentlichen Informationen über das eingetretene Ereignis enthält

Page 39: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 39

Beispiel

tFrame(String title)

{

super(title);

setLayout(new GridLayout(2,3));

...

ItemListener il = new tIL();

cb11.addItemListener(il);

cb12.addItemListener(il);

cb13.addItemListener(il);

cb21.addItemListener(il);

cb22.addItemListener(il);

cb23.addItemListener(il);

}

Page 40: DVG2 - 091 A bstract W indow T oolkit. DVG2 - 092 4 Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window

DVG2 - 09 40

MenuComponent-Klassen

MenuComponent

MenuItem MenuBar

CheckboxMenuItem Menu

PopupMenu