Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec. 2006 L.M. Bosveld-de Smet Onderwerpen vandaag Graphical User Interfaces (GUIs) Overzicht behandelde stof AWT en Swing classes Browser-Applet interactie Brookshear, King Hoorcolleges (zie presentaties en aantekeningen) Voorbeeldvragen tentamen Java Applet Window: voorbeeld Java GUI: voorbeeld 1 Java GUI: voorbeeld 2 GUI als locus van interactie Distance conversion GUI met Applet Viewer label text field containers text area met twee regels tekst buttons met text GUIs bouwen AWT Swing API (sinds Java 1.2) Categorieën van classes in Swing en AWT Swing GUI component classes AWT layout manager classes AWT event classes AWT listener classes Deel van AWT en Swing hierarchie Object Component Container Panel Applet JComponent JApplet JLabel JOptionPane JPanel AbstractButton JButton JTextComponent JTextField JTextArea Distance conversion GUI met browser JApplet JPanel Distance conversion GUI met browser JLabel JTextArea JTextField JButton HTML-file met een applet code tag <HTML> <TITLE>Distance Conversion Applet</TITLE> <applet code = DistanceGUI.class width = 300 height = 200> </applet> </HTML> Browser roept Applet-methoden aan browser laadt pagina gebruiker verlaat pagina init() start() browser start applet gebruiker keert terug naar pagina stop() browser vernietigt applet destroy() browser stopt applet GUI ontwerp Instructies of informatie voor gebruiker Manier om de gebruiker iets in te laten voeren Plaats voor uitvoer Manier om de gebruiker daadwerkelijk iets te laten doen met de applicatie Distance GUI GUI componenten DistanceGUI JApplet -------------------------------content pane for DistanceGUI dataPanel (JPanel) inputLab (JLabel) input (JTextField) buttonPanel (JPanel) toMiles (JButton) toKms (JButton) Code DistanceGUI class (zie copie) Declareren en aanmaken van GUI component objecten JApplet init( ) methode herdefiniëren layout van GUI objecten bepalen GUI objecten toevoegen aan applet focus aan text field component toekennen ActionListeners toevoegen aan de buttons Methode actionPerformed( ) definiëren DistanceGUI: Constructoren voor GUI componenten JTextField (String str, int col) JTextArea (String str, int row, int col) JButton (String str, Icon pic) JLabel (String str, Icon pic) JPanel (LayoutManager lM) DistanceGUI: Methoden in init ( ) Container.setLayout (LayoutManager lM) Container.add (Component c) Component.requestFocus ( ) Component.setBorder (Border bor) Component.setBackground (Color col) Component.setForeground (Color col) generatorObject.addActionListener (ListenerObject) ActionListener interface public class DistanceGUI extends JApplet implements ActionListener elke ‘implementer’van AtionListener moet een methode actionPerformed ( ) definiëren public interface ActionListener extends EventListener { public void actionPerformed (ActioEvent e); } Java Event Model Listener Generator Convert to miles … actionPerformed() Button toMiles … applet dGUI Algoritme actionPerformed ( ) get the input distance from text field input create a DistanceConverter object if the toMiles button is pressed convert input distance to miles using DistanceConverter method toMiles() show the values in kilometers and miles in the output text area else if the toKms button is pressed convert input distance to kilometers using DistanceConverter method toKilometers() show the values in kilometers and miles in the output text area DistanceGUI: Methoden in actionPerformed ( ) Component.getText ( ) Component.setText (String str) anEvent.getSource ( ) Het verschil “event-driven” programmeren “stop-and-wait” programmeren Overzicht Algoritmiek (1) Probleem oplossen en algoritmen opstellen Computer Science Polya Computerarchitectuur Coderingen en binaire notaties Programmeerparadigma’s Software engineering Programmeertaal onafhankelijk Data typen en datastructuren Controlestructuren OOP aspecten Ontwerp van OO-programma’s Overzicht Algoritmiek (2) Programmeren in Java Primitieve typen vs. Klasse/referentietypen Klassen en objecten String klasse en Array klasse Variabelen en methoden: static of niet, toegankelijkheid Hierarchie van klassen en overerving Polymorfisme Interfaces Abstracte klassen AWT Graphics klasse Java GUIs: AWT en Swing API Te bestuderen voor tentamen Stof behandeld tijdens hoorcolleges Opgegeven literatuur King: Chapters 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 Brookshear: Introduction en Chapters 1, 2, 4, 5, 6, 7 (in recente versies 1, 2, 5, 6, 7, 8) Gemaakte opdrachten Voorbeeldtentamen Zie copie. Veel succes