Presentation laddar. Vänta.

Presentation laddar. Vänta.

Chapter 8: Getting Started with Graphics Programming F AWT Class Hierarchy F Frames F The relationship between frame and other UI components F Event-Driven.

Liknande presentationer


En presentation över ämnet: "Chapter 8: Getting Started with Graphics Programming F AWT Class Hierarchy F Frames F The relationship between frame and other UI components F Event-Driven."— Presentationens avskrift:

1 Chapter 8: Getting Started with Graphics Programming F AWT Class Hierarchy F Frames F The relationship between frame and other UI components F Event-Driven Programming –Event Source, Listener, Listener Interface F Layout Managers –FlowLayout, GridLayout, BorderLayout F Panels  Canvases  repaint() and paint() F Drawing Geometric Figures –Color, Font classes –Drawing methods

2 AWT Class Hierarchy

3 Det grafiska användargränssnittet (java.awt) F I paketet java.awt finns mycket av det grafiska användargränssnittet samlat. Bl.a. finner du följande klasser: F ButtonEn vanlig knapp. F CanvasEn yta man kan rita på F CheckboxEn radiobutton eller checkbox F ChoiceEn popup-meny ur vilken man kan välja

4 Det grafiska användargränssnittet java.awt F FrameEtt fönster i vilket man kan placera andra komponenter F LabelEn rad med text F ListEn lista ur vilken man kan välja F PanelEn komponent i vilken man kan placera andra komponenter. En Applet är en Panel. F TextAreaEtt fönster i vilket användaren kan skriva in text. F TextFieldEtt enradigt fönster i vilket användaren kan skriva in text.

5 Metoder i Frame F setBackground(Color) Bakgrundsfärg på fönstret. F setBounds(x,y,bredd,höjd) Fönstrets placering och storlek på bildskärmen. Kan ersättas med setLocation + setSize. F setLocation(x,y) Fönstrets placering på bildskärmen. F setSize(bredd,höjd) Fönstrets storlek på bildskärmen. F setTitle("Titel") Fönstrets titel F setResizable(false) Anger om fönstret kan minimeras/maximeras F setVisible(true / false) Gör fönstret synligt / osynligt

6 Frames import java.awt.*; public class MyFrame { public static void main(String[] args) { Frame f = new Frame("Test Frame"); f.setSize(400,300); f.setVisible(true); } Run

7 Graphics F Graphics Coordinate System  Font and Color F Drawing Lines F Drawing Rectangles F Drawing Ovals F Drawing Arcs F Drawing Polygons

8 Grafiskt program F Ett javaprogram är antingen en fristående applikation eller en Applet (körs normalt i en browser). F Första fönstret i en applikation är ofta av typen Frame. En Frame är bl.a. en Container i vilken olika komponenter, som t.ex. Buttons och Labels, kan placeras. Eftersom ett fönster av typen Frame inte kan stängas så kommer vi att använda fönstret ExtendedFrame (extra-paketet). ExtendedFrame ärver Frame.

9 Applikation F class MittProgram extends Frame { F //Deklaration av instansvariabler, t.ex komponenter F //Inställningar av fönstret i konstruktorn F F public MittProgram() { F F } F F //paint-metoden anropas när fönstret behöver //ritas om F F public void paint(Graphics g) { F }

10 paint() repaint() F paint-metoden anropas av systemet när Framen / Appleten behöver ritas om. Grafikverktyg bifogas anropet. F Om man vill rita en linje gör man anropet F g.drawLine(x1,y1,x2,y2); Om man på egen hand vill se till att allt ritas om så kan man anropa repaint- metoden. F public void repaint() F repaint() anropas när man önskar att Framen / appleten ska ritas om. F Om man inte vill att allt ska ritas om så kan man anropa metoden F repaint(x,y,bredd,höjd); F varvid endast angiven rektangel uppdateras.

11 Klassen Color F Klassen Color används för att beskriva färger i Java. Systemet som används är RGB. F Det finns 13 fördefinierade färger: u Color.black, Color.blue, Color.cyan, Color.darkGray, Color.gray, Color.green, Color.lightGray, Color.magenta, Color.orange, Color.pink, Color.red, Color.white, Color.yellow F Om man önskar en annan färg deklarerar man ett färgobjekt och använder konstruktorn F Color(int r, int g, int b) F där r (röd), g (grön) och b (blå) är värden i intervallet

12 Klassen Color Exempel F Color färg = new Color(200,64,118); F : F g.setColor(färg); F Color slumpfärg = new Color((int)(Math.random()*256), (int)(Math.random()*256), (int)(Math.random()*256)); g.setColor(slumpfärg);

13 Colors Color c = new Color(r, g, b); r, g, and b specify a color by its red, green, and blue components. Example: Color c = new Color(128, 100, 100);

14 Setting Colors You can use the following methods to set the component’s background and foreground colors: setBackground(Color c) setForeground(Color c) Example: setBackground(Color.yellow); setForeground(Color.red);

15 Klassen Font F Klassen Font används för att beskriva typsnitt i Java. Fördefinierade typsnitt är bl.a.: F MonoSpaced, SansSerif och Serif - i det nya versionen av java är: F Times Roman - Courier - Helvetica - Dialog - Symbol F Varje gång man ska ändra Font så behöver man ett nytt Font-objekt. Font font = new Font(”Serif”, Font.PLAIN, 18); F : F g.setFont(font); F Ovanstående kod sätter aktuell Font till en liknande Times New Roman, normal stil och 18 punkter stor. F Det är möjligt att göra anropet utan ett Font-objekt. Då gör man så här: g.setFont(new Font(”Serif”, Font.PLAIN, 18)); F Man skapar Font-objektet samtidigt som man gör anropet.

16 Fonts Font myFont = Font(name, style, size); Example: Font myFont = new Font("TimesRoman", Font.BOLD, 16); Font myFont = new Font("Courier", Font.BOLD+Font.ITALIC, 12);

17 Font Example public void paint(Graphics g) { Font myFont = new Font("Times", Font.BOLD, 16); g.setFont(myFont); g.drawString("Welcome to Java", 20, 40); //set a new font g.setFont(new Font("Courier", Font.BOLD+Font.ITALIC, 12)); g.drawString("Welcome to Java", 20, 70); } RunFontExample

18 Bildskärmen och pixlar F Bildskärmen är uppbyggd av ett rutnät. Varje ruta i nätet kallas för en pixel. Pixlarna är nummrerade från vänster till höger och uppifrån och ner. I båda riktningarna börjar numreringen på noll. F Detta skiljer från matematiken där y-axeln växer uppåt.

19 Klassen Graphics F När paint-metoden anropas av systemet så bigfogas grafikverktyg för att rita på aktuell Frame / Applet.

20 Några intressanta grafikanrop i Graphics  Metoder som börjar med draw ger en ofylld figur och de som börjar med fill ger en fylld figur (fylld med aktuell färg)

21 Några intressanta grafikanrop i Graphics  drawLine(x1,y1,x2,y2) Ritar en linje mellan punkterna (x1;y1) och (x2;y2).  drawOval(x,y,bredd,höjd) fillOval(x,y,bredd,höjd) Ritar en ellips inom angiven rektangel.  drawRect(x,y,bredd,höjd) fillRect(x,y,bredd,höjd) Ritar angiven rektangel.

22 Några intressanta grafikanrop i Graphics  drawString(text,x,y) Skriver texten i angiven position  clearRect(x,y,bredd,höjd) Fyller angiven rektangel med bakgrundsfärgen.  drawRoundRect(x,y,bredd,höjd,bågbredd,båghöjd) fillRoundRect(x,y,bredd,höjd,bågbredd,båghöjd) Ritar angiven rektangel med avrundade hörn.  drawArc(x,y,bredd,höjd, vinkel, antalGrader) fillArc(x,y,bredd,höjd, vinkel, antalGrader) Ritar en båge från startvinkel antalGrader lång. startvinkel=0 => kl 3, startvinkel=90 => kl 12

23 Några intressanta grafikanrop i Graphics  setColor(Color) Anger den färg som ska användas vid grafikanrop  setFont(Font) Anger den Font som ska användas vid drawString

24 Graphics Coordinate System

25 Drawing Lines drawLine(x1, y1, x2, y2);

26 Drawing Rectangles F drawRect(x, y, w, h); F fillRect(x, y, w, h);

27 Drawing Rounded Rectangles F drawRoundRect(x, y, w, h, aw, ah); F fillRoundRect(x, y, w, h, aw, ah);

28 Drawing Ovals F drawOval(x, y, w, h); F fillOval(x, y, w, h);

29 Drawing Arcs F drawArc(x, y, w, h, angle1, angle2); F fillArc(x, y, w, h, angle1, angle2);

30 Drawing Polygons int x[] = {40, 70, 60, 45, 20}; int y[] = {20, 40, 80, 45, 60}; g.drawPolygon(x, y, x.length); g.fillPolygon(x, y, x.length);

31 Example F EnBildTest Run

32 Example F TestEllipser Run

33 Example F EnkelAnimeringTest Run

34 Example F EnkelAnimering2Test Run


Ladda ner ppt "Chapter 8: Getting Started with Graphics Programming F AWT Class Hierarchy F Frames F The relationship between frame and other UI components F Event-Driven."

Liknande presentationer


Google-annonser