290 likes | 466 Views
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) AWT en Swing classes Browser-Applet interactie Overzicht behandelde stof
E N D
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) • AWT en Swing classes • Browser-Applet interactie • Overzicht behandelde stof • Brookshear, King • Hoorcolleges (zie presentaties en aantekeningen) • Voorbeeldvragen tentamen
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 JApplet JComponent JLabel JOptionPane JPanel AbstractButton JTextComponent JButton JTextField JTextArea
Distance conversion GUI met browser JApplet JPanel
Distance conversion GUI met browser JLabel JTextField JButton JTextArea
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 init() gebruiker verlaat pagina start() browser start applet gebruiker keert terug naar pagina stop() browser stopt applet browser vernietigt applet destroy()
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
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 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 • 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.