Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet
Onderwerpen vandaag Graphical User Interfaces (GUIs) AWT en Swing classes Browser-Applet interactie Overzicht behandelde stof 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 labeltext field buttons met text text area met twee regels tekst containers
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 JAppletJComponent JTextComponent JTextAreaJTextField AbstractButtonJPanelJOptionPaneJLabel JButton
Distance conversion GUI met browser JApplet JPanel
Distance conversion GUI met browser JLabel JButton JTextField JTextArea
HTML-file met een applet code tag Distance Conversion Applet
Browser roept Applet-methoden aan init() start() stop() destroy() browser laadt pagina browser start applet browser stopt applet browser vernietigt applet gebruiker verlaat pagina gebruiker keert terug naar pagina
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) buttonPanel (JPanel) inputLab (JLabel)input (JTextField)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 Convert to miles Generator Listener … actionPerformed() … applet dGUI Button toMiles
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 Polya Computer Science 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