Java GUI nJava is platform-onafhankelijk nLook&feel past zich aan aan het platform new FileDialog(……).show();
Java GUI-libraries Zwaargewicht nGebruikt de buttons enz. van het platform Lichtgewicht n Tekent alles zo veel mogelijk zelf Snel, eenvoudig Geen bijzondere componenten Gebruiker voelt zich thuis in GUI Traag, complex Alle componenten die je maar wilt Programmeur kan GUI bepalen AWTSwing
Java Swing componenten nLichtgewicht (alles wordt door Java getekend) nInstelbare look&feel uDoor de gebruiker uDoor de programmeur alleen de rand is zwaargewicht
Swing look&feel keuze nElke look&feel op elk platform mogelijk (Windows, Motif, Mac, …) nPlus: nieuwe look&feels (Metal, …) nBehalve: Windows look&feel op andere systemen
Componenten Component Container Button CheckBox Scrollbar Canvas Text Component Choice TextArea TextFieldMenuItemMenu MenuBar Menu Component JMenuBarJMenuItemJMenuPanel Window Applet Frame JApplet JFrame JScrollBar JPanel JComboBox JTable JButton JCheckBox JTextArea JTextField JTree JToolBar JToolTip Abstract Button JText Component JComponent AWT- Swing- JEditorPane JFormatted TextField
Van AWT naar Swing import java.awt.*; class Hoi extends Applet { public void init () {Button b; b = new Button (“OK”); } this. add (b) ; JApplet Container c = this ; c JButton import javax.swing.*;. getContentPane(); c. setLayout( new FlowLayout() );
Pas op met Swing nGebruik geen AWT-componenten in een Swing-GUI nKies in een JPanel voor uherdefinitie van paint ucomponenten maken met add maar niet allebei! (dus ook niet in het toplevel applet)
Klasse Graphics nIs… uEen abstractie van het teken-medium nWeet… uHuidige tekenkleur uHuidige font uHuidige clipping area nKan… uLijnen tekenen uRechthoeken, ovalen tekenen uTeksten, images tekenen g.setColor(…); g.setFont(…); g.setClip(…); g = bm. getGraphics(); void paint (Graphics g) { … }g.drawLine(…); g.fillRect(…); g.drawString(…);
Klasse Graphics2D extends Graphics nWeet ook… uLijn-stijl uVul-stijl uDraaiïng, verschuiving uKwaliteitsopties nKan ook… uDraw en fill van een willekeurige Shape
Gebruik van Graphics2D public void paint(Graphics g) { g. setColor(Color.RED); g. drawLine(0,0,100,100); } Graphics2D g2 = (Graphics2D) g ; g2. setStroke( new BasicStroke(10) ); g2. setRenderingHint ( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIASING_ON );