Presentation laddar. Vänta.

Presentation laddar. Vänta.

OOP1 OOP&M del III– Föreläsning vecka 11 mer I/O serialization GUI intro.

Liknande presentationer


En presentation över ämnet: "OOP1 OOP&M del III– Föreläsning vecka 11 mer I/O serialization GUI intro."— Presentationens avskrift:

1 OOP1 OOP&M del III– Föreläsning vecka 11 mer I/O serialization GUI intro

2 OOP2 OOP – Exception Handling Exception Model Exceptions make the error handling more logical and regular by allowing you to group all the exception handling code in only one place instead of worrying about all the things that could go wrong at each line of the code Method AMethod BMethod CMethod D EXCEPTION direction of propagation main() ERROR exception handling code Throws Exception

3 OOP3 OOP – Exception Handling Exception Model Example try { // normally this code runs without problems, // but sometimes may raise exceptions or exit // the block via a break, continue, or return } catch (ExceptionType1 e1) { // handle an exception object e1 of type // ExceptionType1 or of a subclass of that type } catch (ExceptionType2 e2) { // handle an exception object e1 of type // ExceptionType2 or of a subclass of that type } finally { // always execute this code, after leaving the try clause: // 1) normally, after reaching the bottom of the block // 2) with an exception handled by a catch // 3) with an exception that is not handled // 4) because of a break, continue or return statement }

4 OOP4 OOP – Java an Files Java provides a predefined class for modeling disk files, called File the constructor for File accepts the file’s name (a String reference) as its argument new File ( filename ) An example of this would be: Filef1, f2; f1 = new File(“Bjorn.txt”); f2 = new File(“Lisa.txt”);

5 OOP5 OOP – Java and Files If the files exist the class provides us two methods for directly operate with the files: DO NOT FORGET THAT: The creation of the instances f1 and f2 doesn’t mean that the files exist!! Filef; f = new File(“delete_me”); f.delete(); delete Filef1, f2; f1 = new File(“change_me”); f2 = new File(“take_my_name”); f1.renameTo(f2); rename

6 OOP6 OOP – Java streams into files Java program FileOutputStream SHOPPING potatis mjolk agg … shopping.lst bytes of data ewsc24rfds53Hej20Hur20m76ar20du20?rsf

7 OOP7 OOP – Java streams into files summary: how to create or overwrite a file in a line Create a File object to represent the file and then use it to Create a FileWriter object to represent the output pathway to the file and use it to Create a PrintWriter object to provide a convenient output pathway to the file Use the print or println methods of PrintWriter as needed to write content to the file PrintWriter target = new PrintWriter( new FileWriter( new File(“data.out”)));

8 OOP8 OOP – input … an overview Java program InputStream bytes of data ewsc24rfds53Hej20Hur20m76ar20du20?rsf Input source We must build a bridge between the Java Program and the input source!!

9 OOP9 OOP – keyboard Java provides a predefined object to represent the stream of input that comes from the keyboard System.in. keyboard [existing] InputStream new InputStreamReader new BufferedReader keyb isr System.in BufferedReader keyb = new BufferedReader( new InputStreamReader(System.in));

10 OOP10 OOP –INPUT from files Obtaining input from disk files is only a little bit more complicated than from the keyboard. Our starting point must be to find some sort of InputStream object. As we said before, both BufferedReader and FileReader belong to that class new FileReader new BufferedReader br fr files BufferedReader br = new BufferedReader( new FileReader("c:/testio.txt"));

11 OOP11 Serialisering(Serialization) Även objekt kan sparas till filer eller skickas över nätverk. För att göra detta måste objektet implementera gränssnittet Serializable från biblioteket java.io. Gränssnittet Serializable har inga metoder som skall implementeras Så här kan det se ut import java.io.*; public class myClass implements Serializable{ /*metodkropp*/ }

12 OOP12 Serialisering(Serialization) Hur man serialiserar ett objekt av typen MyClass sparar till fil och läser tillbaka. File f = new File("c:/objects"); MyClass myObject =new MyClass(); ObjectOutputStream oos=new ObjectOutputStream( new FileOutputStream(f)); oos.writeObject(myObject); oos.close(); //Hämta tillbaka och typomvandla MyClass myOtherObject; ObjectInputStream ois=new ObjectInputStream( new FileInputStream(f)); myOtherObject = (MyClass)ois.readObject(); ois.close();

13 OOP13 Serialisering(Serialization) Man kan med metoderna writeObject() och readObject() skriva resp läsa object. Man kan skriva flera object till en fil (även med olika typ. När man läser tillbaka måste man typomvandla (casting), dvs man måste veta vilka object som skrevs i vilken ordning. När man läser tillbaka måste man ha tillgång till de klasser som representerar objekten

14 OOP14 Instanceof Med instanceof kan man ta reda på vilken klass ett object tillhör. Används till exempel för att räkna object av olika typ i en samling Syntax: if(myObject instanceof ClassName){ /*Kod som utförs om myObject tillhör klassen ClassName*/ }

15 OOP15 GUI

16 OOP16 GUI Två API-er/bibliotek för Graphical User Interface (API=Application Program Interface) AWT Abstract Windowing Toolkit (Enklare GUI) Swing (Avancerat GUI) Uppbyggt på samma sätt som AWT. Kan ibland ge problem när man använder det i webbrowsers.

17 OOP17 GUI Består av: Containers – Behållare tex: JFrame, JApplet, JWindow, LayoutManagers – Bestämmer hur layouten byggs upp tex: GridLayout, BorderLayout. Kontrollkomponenter – tex: JButton, JCheckBox, JOptionPane Händelselyssnare och Händelsehanterare– Kopplas till de olika kontrollkomponenter för att ge önskat resultat.

18 OOP18 GUI-Struktur Vi låter två filer bära strukturen för GUI-Applicationen Funktionaliteten placeras i klassen Application Användargränsittet placeras i klassen GUI dessutom har vi en tredje fil där vår mainmetod placeras och som startar applikationen. Förutom ovanstående filer kan det finnas ett flertal andra klasser som bygger upp applikationen och användargränssnittet

19 OOP19 GUI Containers ett urval JFrame – grundbehållare för en applikation. Ett fönster med ram och titel. Kan ha en menyrad. Huvudkomponent i applikation deklareras: JFrame myFrame; skapas: myFrame = new JFrame(); JPanel en osynlig behållare. Används som del i JFrame för att visa bilder eller placera ut knappar. deklareras: JPanel myPanel: skapas: myPanel = new JPanel();

20 OOP20 GUI LayoutManagers ett urval BorderLayout innehåller 5 områden( NORTH, SOUTH, WEST, EAST, CENTER) Bra grundlayoutBorderLayout GridLayout (ett rutnät av rader och kolumner)GridLayout Flowlayout (Kontrollkomponenterna läggs till efterhand bra för knappar)Flowlayout Layouter kan appliceras på Containers/Behållare som JFrame, JPanel mfl

21 OOP21 ?


Ladda ner ppt "OOP1 OOP&M del III– Föreläsning vecka 11 mer I/O serialization GUI intro."

Liknande presentationer


Google-annonser