OOP&M - teori1 OOP&M del III– Föreläsning 23 vecka 15 Graphics Graphics2D Menyer JMF
OOP&M - teori2 GUI-1 Består av: Containers – Behållare tex: –JFrame – startbehållare för en applikation –JApplet - startbehållare för applet –JPanel – tom behållare bra till knappar bilder mm –JDialog - tomt dialogfönster bra till inställningar mm LayoutManagers –GridLayout –Layout som rutmönster med lika stora områden –BorderLayout – Layout med fem områden NORTH,EAST,WEST,SOUTH,CENTER –FlowLayout Kontrollkomponenterna läggs ut efter varandra på en eller flera rader
OOP&M - teori3 GUI-2 Kontrollkomponenter – bas –JButton - knapp –JCheckBox - kryssruta –JRadioButton - rund kryssruta kopplas ofta ihop till ButtonGroup –JComboBox - Drop-Downlista (enbart ett val) –JList - Lista i fönster kombineras ofta med JScrollPane –JLabel - Icke editerbart fält för text o bild –JTextFields - editerbart fält med en rad –JTextArea - editerbart fält med flera rader –JOptinPane - färdiga modala dialogrutor. Övrigt –Border - skapar bord runt komponent paketet javax.swing.border –JScrollPane - ger komponent scroll-lister
OOP&M - teori4 GUI-3 Händelser några exempel Händelselyssnare-Händelsehanterare-Metod för att lägga till en lyssnare på en komponent (exempel på komponenter som stöder händelsen) –ActionEvent-ActionListener-addActionListener (JButton, JTextField) –FocusEvent-FocusListener-addFocusListener (Subbklasser till Component) –KeyEvent-KeyListener - addKeyListener(Subbklasser till Component) Gränssnitten händelselyssnare och deras metoder –ActionListener actionPerformed(ActionEvent) –FocusListener, FocusAdapter focusGained(FocusEvent) focusLost(FocusEvent) –KeyListener,KeyAdapter keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent)
OOP&M - teori5 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. Repain anropar paintComponent(Graphics g) så snart det finns tillfälle.
OOP&M - teori6 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;
OOP&M - teori7 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));
OOP&M - teori8 Former och linjer Finns främst för Java2D i biblioteket: java.awt.geom.*; Linjer genom java.awt.stroke; Exempel så betyder: g.setStroke(new BasicStroke(10.0f)); att de figurer och linjer man ritar blir med linje 10 enheter bred ca 10 pixlar (f betyder flyttal (float) alltså decimaltal men inte med den precision som double har)
OOP&M - teori9 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)
OOP&M - teori10 JMF (Java Media Framework) Med JMF kan man spela editera strömma och fånga ljud och bild. Ett stort antal mediatyper stöds (.avi,.swf,.mp3,.mid,.mpeg,.mov,.wav mfl
OOP&M - teori11 ?