Presentation laddar. Vänta.

Presentation laddar. Vänta.

OOP&M - teori1 OOP del III–vecka 15 Mer NetBeans MouseEvent Graphics Threads TIJ Chapter 14 Menus sid 827-835 Drawing 835-838 File Dialogs 843-845.

Liknande presentationer


En presentation över ämnet: "OOP&M - teori1 OOP del III–vecka 15 Mer NetBeans MouseEvent Graphics Threads TIJ Chapter 14 Menus sid 827-835 Drawing 835-838 File Dialogs 843-845."— Presentationens avskrift:

1 OOP&M - teori1 OOP del III–vecka 15 Mer NetBeans MouseEvent Graphics Threads TIJ Chapter 14 Menus sid Drawing File Dialogs

2 OOP&M - teori2 Menyer Menyer byggs upp av ett antal delar: JMenubar = menyraden JMenu = en meny JMenuItem = ett menyval Man lyssnar på menyvalen med en vanlig Actionlistener. (se menyexemplet)

3 OOP&M - teori3 Graphics o Graphics2D Klasser för att rita är Graphics o Graphics2D –java.awt.Graphics; –javax.awt.Graphics2D; Graphics innehåller enklare grafiska funktioner, Graphics2D kom i samband med JAVA 2 (Swing mm) och innehåller mer avancerade funktioner. Graphics är en klass som motsvarar en rityta som kan appliceras på till exempel en Component. Innehåller metoder som drawline, drawRect, drawstring mfl För ett Graphics-objekt skapar man oftast en klass som utvidgar JPanel och överskuggar metoden paintComponent(Graphics g) som är en metod i klassen JComponent. Metoden paintComponent(Graphics g) anropas varje gång componenten behöver ritas om. med metoden repaint() kan man tvinga fram en omritning av en component. Repaint anropar paintComponent(Graphics g) så snart det finns tillfälle.

4 OOP&M - teori4 Graphics o Graphics2D Klasser för att rita är Graphics o Graphics2D –java.awt.Graphics; –javax.awt.Graphics2D; Graphics har begränsningar med bla begränsat antal fonter och att linjer bara kan vara en pixel breda. Man kan enkelt omvandla ett Graphics objekt till ett Graphics2D. – Graphics2D g2 = (Graphics2D)g;

5 OOP&M - teori5 Former och linjer Finns främst för Java2D i biblioteket: java.awt.geom.*; Linjer genom java.awt.stroke; Exempelvis betyder: g.setStroke(new BasicStroke(10)); att de figurer och linjer man ritar blir en linje 10 enheter bred ca 10 pixlar (f betyder flyttal (float) alltså decimaltal men inte med den precision som double har)

6 OOP&M - teori6 Fonter Fördefinierade fonter –TimesRoman –Helvetica –Courier –Symbol –Dialog –DialogInput –med Graphics2D kan man använda alla systemfonter Styles –Font.PLAIN –Font.ITALIC –Font.BOLD –Font.BOLD+Font.ITALIC Size int g2.setFont(new Font("TimesRoman",Font.PLAIN,20));

7 OOP&M - teori7 Kod import java.awt.*; public class MyPanel extends JPanel{ //konstruktor anropa repaint() när JPaneln skall ritas om public MyPanel(){ //Till exempel //this.setBackground (ic); //this.setSize(100,100); } //Överskugga paintComponent samt casta till Graphics2D public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2=(Graphics2D)g; //rita vad som skall ritas }

8 OOP&M - teori8 Threads Synonymer: Multitasking MultiThreaded Trådade program Ger möjlighet att utföra saker till synes samtidigt. Detta sker genom att man delar processortiden mellan de processer som körs.

9 OOP&M - teori9 Threads Används för att: inte programmet skall bli upptaget med CPU-intensiva (tex Graphics-objekt) uppgifter så att till exempel avsluta-knappen ej fungerar. Om man skall utföra något med vissa intervall behöver man ligga i vänteläge. För att kunna göra detta skapar man en tråd som vaknar med vissa intervall. Skapar helt nya problem man måste kunna skydda gemensamt tillgänglig data man måste kunna vänta på andra trådar. Trådar är dock mycket användbara när man arbetar med Grafiska gränssnitt samt multimedia. Nödvändigt för många I/O program.

10 OOP&M - teori10 Threads Skapas som objekt som utvidgar klassen Thread och överskuggar metoden run(). Tråden startar genom att metoden start() anropas. exempel på trådad klass som startar automatiskt. Man starta aldrig om en stoppad tråd utan skapar en ny. public class MyThread extends Thread { private boolean stop=false; public MyThread(){ this.start(); } public void run(){ while(!stop){ //gör något try{sleep(1000);}catch(InterruptedException e){} } public void stopThread(){ stop=true; }

11 OOP&M - teori11 Threads (synchronized) För att skydda data från att nås av flera trådar samtidigt gör man så samtliga metoder som arbetar med data deklareras synchronized. Då kan endast en nås samtidigt. public class MyThread extends Thread { private boolean stop=false; public MyThread(){ this.start(); } public synchronized void run(){ while(!stop){ //gör något med data som behöver skyddas try{sleep(1000);}catch(InterruptedException e){} } public void stopThread(){ stop=true; }

12 OOP&M - teori12 ?


Ladda ner ppt "OOP&M - teori1 OOP del III–vecka 15 Mer NetBeans MouseEvent Graphics Threads TIJ Chapter 14 Menus sid 827-835 Drawing 835-838 File Dialogs 843-845."

Liknande presentationer


Google-annonser