Hoofdstuk 12:

  • Published on
    23-Jan-2016

  • View
    26

  • Download
    0

Embed Size (px)

DESCRIPTION

Hoofdstuk 12:. Grafische mogelijkheden en Java2D. Object. Color. Component. Arc2D. Font. FontMetrics. Graphics. BasicStroke. Polygon. Classes and interfaces from the Java2D API that appear in package java.awt. Classes from the Java2D API that appear in package java.awt.geom. - PowerPoint PPT Presentation

Transcript

  • Hoofdstuk 12:Grafische mogelijkheden en Java2D

    JAVA

  • Gebruikte klassen en interfaces

    JAVA

  • 1InleidingGrafische mogelijkheden van Java2D-vormenKleuren (class Color)Lettertypen (class Font)Java 2D APIUitgebreide grafische mogelijkhedenAangepaste 2D-vormenVormen opvullen met kleuren en patronen

    JAVA

  • 1InleidingCordinatenstelsel in JavaIdentificeert alle punten op een schermLinkerbovenhoek heeft cordinaten (0,0) en bevindt zich achter de titelbalk van het venster. De methode getInsets() levert een Insets object af (top, bottom, left, right: aantal pixels tussen de rand van het venster en het tekengebied).Elk punt bestaat uit een x-cordinaat en een y-cordinaatDe eenheid is de pixel

    JAVA

  • Cordinatenstelsel in JavaX-asY as(0, 0)(x, y)

    JAVA

  • Grafische context en grafische objectenGrafische contextMaakt tekenen mogelijk op het schermEen graphics object beheert de grafische contextControleert hoe gegevens worden getekendclass Graphics is abstractKan niet genstantieerd wordenDraagt bij tot de overdraagbaarheid van Javaclass Component heeft een methode paint met als argument een Graphics objectpublic void paint (Graphics g)De methode paint wordt zelden aangeroepen omdat het grafisch tekenen een event-driven proces isDe methode repaint roept de methode update aan die op haar beurt de methode paint aanroept. Deze methode repaint mag niet overriden worden.

    raphics object beheert de grafische contextControleert hoe gegevens worden getekendDe klasse Graphics is abstractKan niet genstantieerd wordenDraagt bij tot de overdraagbaarheid van JavaDe klasse Component heeft een methode paint met als argument een Graphics objectpublic void paint( Graphics g )Wordt aangeroepen via de methode repaint

    JAVA

  • 3Gebruik van kleurenclass ColorBevat methoden en constanten om kleuren te manipuleren Kleuren worden gecreerd vertrekkende van rode, groene en blauwe bestanddelenRGB waarden:int tussen 0 en 255float tussen 0.0 en 1.0Java biedt een keuze aan uit 256x256x256 (16,7 miljoen) mogelijke kleuren

    JAVA

  • Statische constanten van de class Color

    JAVA

    Color Constante

    Kleur

    RGB waarde

    public final static Color orange

    oranje

    255, 200, 0

    public final static Color pink

    roze

    255, 175, 175

    public final static Color cyan

    cyaan

    0, 255, 255

    public final static Color magenta

    magenta

    255, 0, 255

    public final static Color yellow

    geel

    255, 255, 0

    public final static Color black

    zwart

    0, 0, 0

    public final static Color white

    wit

    255, 255, 255

    public final static Color gray

    grijs

    128, 128, 128

    public final static Color lightGray

    Licht grijs

    192, 192, 192

    public final static Color darkGray

    donker grijs

    64, 64, 64

    public final static Color red

    rood

    255, 0, 0

    public final static Color green

    groen

    0, 255, 0

    public final static Color blue

    blauw

    0, 0, 255

  • Methoden van de class Color

    JAVA

    Methode

    Beschrijving

    public Color( int r, int g, int b )

    Creert een kleur gebaseerd op rode, groene en blauwe bestanddelen uitgedrukt als integers tussen 0 en 255.

    public Color( float r, float g, float b )

    Creert een kleur gebaseerd op rode, groene en blauwe bestanddelen uitgedrukt als floating-point waarde tussen 0.0 en 1.0.

    public int getRed() // Color class

    Levert een waarde af tussen 0 en 255 die het rode bestanddeel voorstelt.

    public int getGreen() // Color class

    Levert een waarde af tussen 0 en 255 die het groene bestanddeel voorstelt.

    public int getBlue() // Color class

    Levert een waarde af tussen 0 en 255 die het blauwe bestanddeel voorstelt.

    public Color getColor() // Graphics class

    Levert een Color object af dat de huidige kleur van de grafische context voorstelt.

    public void setColor( Color c ) // Graphics class

    Stelt de huidige kleur in om te tekenen in de grafische context.

  • VoorbeeldHet gebruik van enkele methoden van de class Color. Rechthoeken en tekst worden getekend in verschillende kleuren.

    JAVA

  • 1 // Fig. 12.5: ShowColors.java 2 // Het gebruik van kleuren 3 4 // Java core packages 5 import java.awt.*; 6 import java.awt.event.*; 7 8 // Java extension packages 9 import javax.swing.*;10 11 public class ShowColors extends JFrame {12 13 // constructor geeft een titel en afmetingen aan het venster14 public ShowColors()15 {16 super( "Using colors" );17 18 setSize( 400, 130 );19 setVisible( true );20 }21 22 // teken rechthoeken en tekst in verschillende kleuren23 public void paint( Graphics g )24 {25 // aanroep van de methode paint van de superclass26 super.paint( g );27 28 // stel een kleur in met behulp van integers29 g.setColor( new Color( 255, 0, 0 ) );30 g.fillRect( 25, 25, 100, 20 );31 g.drawString( "Current RGB: " + g.getColor(), 130, 40 );32 33 // stel een kleur in met behulp van floats34 g.setColor( new Color( 0.0f, 1.0f, 0.0f ) );35 g.fillRect( 25, 50, 100, 20 );

    JAVA

  • 36 g.drawString( "Current RGB: " + g.getColor(), 130, 65 );37 38 // stel een kleur in met behulp van de statische constanten uit de klasse Color39 g.setColor( Color.blue );40 g.fillRect( 25, 75, 100, 20 );41 g.drawString( "Current RGB: " + g.getColor(), 130, 90 );42 43 // toon de individuele RGB waarden44 Color color = Color.magenta;45 g.setColor( color );46 g.fillRect( 25, 100, 100, 20 );47 g.drawString( "RGB values: " + color.getRed() + ", " +48 color.getGreen() + ", " + color.getBlue(), 130, 115 );49 }50 51 // voer de applicatie uit52 public static void main( String args[] )53 {54 ShowColors application = new ShowColors();55 56 application.setDefaultCloseOperation( 57 JFrame.EXIT_ON_CLOSE );58 }59 60 } // einde class ShowColors

    JAVA

  • VoorbeeldHet gebruik van JColorChooser. Wanneer de gebruiker op de knop Change Color klikt, kan hij een kleur kiezen. De achtergrond van het venster krijgt vervolgens de gekozen kleur.

    JAVA

  • 1 // Fig. 12.6: ShowColors2.java 2 // Het gebruik van JColorChooser 3 4 // Java core packages 5 import java.awt.*; 6 import java.awt.event.*; 7 8 // Java extension packages 9 import javax.swing.*;10 11 public class ShowColors2 extends JFrame {12 private JButton changeColorButton;13 private Color color = Color.lightGray;14 private Container container;15 16 // aanmaak van de GUI17 public ShowColors2()18 {19 super( "Using JColorChooser" );20 21 container = getContentPane();22 container.setLayout( new FlowLayout() );23 24 // aanmaak van de changeColorButton en registratie van zijn event handler25 changeColorButton = new JButton( "Change Color" );26 27 changeColorButton.addActionListener(28 29 // anonieme inner class30 new ActionListener() {31 32 // toon JColorChooser wanneer de gebruiker klikt op de knop33 public void actionPerformed( ActionEvent event )34 {35 color = JColorChooser.showDialog(

    JAVA

  • 36 ShowColors2.this, "Choose a color", color );37 38 // stel default kleur in, wanneer er geen kleur werd geretourneerd39 if ( color == null )40 color = Color.lightGray;41 42 // wijzig de achtergrondkleur van de content pane43 container.setBackground( color );44 }45 46 } // einde van de anonieme inner class47 48 ); // einde aanroep addActionListener49 50 container.add( changeColorButton );51 52 setSize( 400, 130 );53 setVisible( true );54 }55 56 // voer de applicatie uit57 public static void main( String args[] )58 {59 ShowColors2 application = new ShowColors2();60 61 application.setDefaultCloseOperation(62 JFrame.EXIT_ON_CLOSE );63 }64 65 } // einde class ShowColors2

    JAVA

  • JAVA

  • JColorChooser dialoogbox

    JAVA

  • 4Gebruik van lettertypenclass FontBevat methoden en constanten om lettertypen te manipulerenConstructor met drie argumentenNaamMonospaced, SansSerif, Serif, etc. StijlFont.PLAIN, Font.ITALIC and Font.BOLDDe stijlen kunnen gecombineerd worden, zoals Font.ITALIC + Font.BOLDGrootte Uitgedrukt in punten (1/72 inch)

    JAVA

  • Methoden van de class Font

    JAVA

    Methode of constante

    Beschrijving

    public final static int PLAIN

    // Font class

    Een constante die een volle stijl voorstelt.

    public final static int BOLD

    // Font class

    Een constante die een vette stijl voorstelt.

    public final static int ITALIC

    // Font class

    Een constante die een cursieve stijl voorstelt.

    public Font( String name, int style, int size )

    Maakt een nieuw Font object met het gespecificeerde lettertype, stijl en grootte.

    public int getStyle()

    // Font class

    Levert een integer af die de huidige stijl van het lettertype weergeeft.

    public int getSize()

    // Font class

    Levert een integer af die de huidige grootte van het lettertype weergeeft.

    public String getName()

    // Font class

    Levert een string af d