JAVA -- H101 Menu: enkel voor applicaties, niet voor applets soorten: hoofdmenu shortcut popupmenu MENU’S 1. Menu Hoofdmenu’s Shortcuts Popupmenu’s 2.

Slides:



Advertisements
Verwante presentaties
Hoofdstuk 14: Exception Handling JAVA -- H14.
Advertisements

Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
INFITL01DT Theorie itil & it-servicemanagent 1
Van domeinklasse tot implementatie
MagentaPurpleTeal PinkOrangeBlue LimeBrown RedGreen Introductie C# /.NET
automatische garbage collection klein object georiënteerd betrouwbaar
Klasse Stringbuffer Wanneer een String object gecreëerd wordt, kan de inhoud ervan nooit meer veranderen Stringbuffer wordt gebruikt voor zogenaamde.
Het type int Tekenen met Java operatoren
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Klassen en objecten.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Computervaardigheden en Programmatie Universiteit AntwerpenObjecten 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Hoofdstuk 6: Controle structuren
Hoofdstuk 2 Hallo, C# !.
Algoritmiek Arrays: wat zijn dat en wat kun je ermee? Loops: hoe hou je ze in bedwang? Hoorcollege 6 - Ma. 9 okt L.M. Bosveld-de Smet.
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Hoorcollege 8 Game object structuren. Arrays in games Grid-gebaseerd speelveld (zoals Tetris) Lijst van spelers Lijst van inventory items Lijst van alle.
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Eerste deeltoets Uitwerking. Resultaten Gemiddeld: 6,01 Tips voor de volgende keer: – Werk in klad uit, schrijf duidelijk – Oefenen met loops en tellertjes.
Hoofdstuk 8 Objecten en klassen.
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
JAVA -- H81 Exception: ongewone of foutieve situatie->prog. mislukt kan onderschept en afgehandeld worden. = een object van de klasse Throwable, gegenereerd.
Checked exceptions: FileNotFoundException, IOException, …
JAVA --- H71 thread= draad in het programma (pad) gewone applets = één thread, volgt één pad multithreading = er worden twee of meer paden gestart, die.
CONTROLESTRUCTUREN (DEEL 2)
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
JAVA1 H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA Java: ontworpen in 1990 door Sun Microsystems voor de programmering.
Oefeningen Hoofdstuk 3.
Algoritmiek Strings & Stringmanipulaties; Controle Structuren; Floating-point notation. Hoorcollege 4 - Ma. 25 sept L.M. Bosveld-de Smet.
Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet.
Algoritmiek Software Development O-O Design Hoorcollege 11 - Ma. 13 nov L.M. Bosveld-de Smet.
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Klasse StringBuffer Nadat een String object gecreëerd is, kan de inhoud ervan nooit meer veranderen StringBuffer wordt gebruikt voor zogenaamde.
Hoofdstuk 14: Graphical User Interface Componenten: Deel 2.
1 Hoofdstuk 11: Strings en karakters Inleiding In dit hoofdstuk bespreken we de mogelijkheden van de klassen : String StringBuffer Character StringTokenizer.
1 HOOFDSTUK 5 CONTROLESTRUCTUREN (DEEL 2) 5.1. INTRODUCTIE  Vervolg discussie omtrent gestructureerd programmeren  Introductie van de overblijvende controlestructuren.
JAVA1 Hoofdstuk 13: Graphical User Interface Componenten: Deel 1.
HOOFDSTUK 7 ARRAYS 7.1.     INLEIDING Array
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Hoofdstuk 9 Objecten en klassen.
Hoorcollege 9 Jewel Jam The revenge. Hierarchie van game objecten Game object (lijst) Game object (grid) Game object (lijst) Game object.
Java GUI nJava is platform-onafhankelijk nLook&feel past zich aan aan het platform new FileDialog(……).show();
Internetapplicaties - IV Collecties 1 Internetapplicaties Deel 4: Java hulpklassen: Collecties.
Hoofdstuk 10.1 Toepassing: Bitmap-editor. nKlik punten op scherm nPlaatje verschuiven left, right, up, down nPlaatje bewerken clear, invert, bold, outline.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Hoorcollege 5 Herhaling, game object interactie. Ball class class Ball { Texture2D colorRed, colorGreen, colorBlue; Texture2D currentColor; Vector2 position,
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
The beast has been released! 4 arcade-style games Interviews with famous people in the game industry Develop browsers games for any device (phone, tablet,
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Hoofdstuk 17: FILES EN STREAMS.
Inleiding tot programmeren
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Hoofdstuk 12 Ontwerp van programma’s. Ontwerp van de GUI nStandaard in Applets: alle met add toegevoegde componenten komen naast elkaar (totdat de regel.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
GUI Graphical User Interface. Wat is een Graphical User Interface Mooi Gebruiksvriendelijk Veel denkwerk.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
Bestanden Lezen Schrijven Afbeeldingen. Bestandstypen.txt.png eigen.
Informatie beoordelen If else Switch En Wiskunde.
Objectgeoriënteerd Programmeren (2)
OOS Object geOrienteerd Software-ontwerp - 5
Gameprogrammeren: Klassen en objecten
Digitale beeldverwerking
Implementatie Zoekboom
Transcript van de presentatie:

JAVA -- H101 Menu: enkel voor applicaties, niet voor applets soorten: hoofdmenu shortcut popupmenu MENU’S 1. Menu Hoofdmenu’s Shortcuts Popupmenu’s 2. L ayoutmanager FlowLayout BorderLayout CardLayout GridLayout GridBagLayout

JAVA -- H102 MenuBar MENU’S -- HOOFDMENU 1. Menu Hoofdmenu’s Shortcuts Popupmenu’s 2. L ayoutmanager FlowLayout BorderLayout CardLayout GridLayout GridBagLayout Menu (= hoofdmenu) MenuItem ( = submenu) In Visual Café: via Insert Component In JDK: in 3 stappen

JAVA -- H103 MENU’S – HOOFDMENU – VOORBEELD1

JAVA -- H104 import java.awt.*; import java.awt.event.*; public class Biologie extends Frame implements ActionListener { MenuItem zoogdieren, vogels, bomen, bloemen, keuze; public static void main(String[] args) { new Biologie(); } MENU’S – HOOFDMENU – VOORBEELD1(1)

JAVA -- H105 Biologie() { MenuBar mbalk = new MenuBar(); setTitle("Biologie"); setMenuBar(mbalk); Menu mD= new Menu("Dieren"), mP = new Menu("Planten"); mbalk.add(mD); mbalk.add(mP); zoogdieren = new MenuItem("Zoogdieren"); mD.add(zoogdieren); vogels = new MenuItem("Vogels"); mD.add(vogels); bomen = new MenuItem("Bomen"); mP.add(bomen); bloemen = new MenuItem("Bloemen"); mP.add(bloemen); MENU’S – HOOFDMENU – VOORBEELD1(2)

JAVA -- H106 MENU’S – HOOFDMENU – VOORBEELD1(3) zoogdieren.addActionListener(this); vogels.addActionListener(this);bomen.addActionListener(this); bloemen.addActionListener(this); setSize(300,300); // anders enkel een balkje! show(); } public void actionPerformed(ActionEvent evt) { keuze = (MenuItem) evt.getSource(); repaint(); }

JAVA -- H107 MENU’S – HOOFDMENU – VOORBEELD1(4) public void paint(Graphics g) { if (keuze != null) { String s = null; if (keuze == zoogdieren) s = "Olifant, paard, hond"; else if (keuze == vogels) s = "Spreeuw, duif, zwaluw"; else if (keuze == bomen) s = "Eik, beuk, spar"; else if (keuze == bloemen) s= "Roos, zonnebloem, madeliefje"; elses= "Programmafout"; g.drawString(s, 80, 140);}}

JAVA -- H108 MENU’S – HOOFDMENU – VOORBEELD2

JAVA -- H109 MENU’S – HOOFDMENU – VOORBEELD2(1) import java.awt.*; import java.awt.event.*; public class MenuCirkel extends Frame implements ActionListener { private Cirkel mijnCirkel; private MenuItem groterItem, kleinerItem; private MenuItem linksItem, rechtsItem; public static void main(String[] args) { Frame f = new MenuCirkel(); f.setSize(200, 200); f.setVisible(true); }

JAVA -- H1010 MENU’S – HOOFDMENU – VOORBEELD2(2) public MenuCirkel() { setTitle("Cirkel"); setLayout(new FlowLayout()); MenuBar menuBalk = new MenuBar(); Menu grootteMenu = new Menu("Grootte"); groterItem = new MenuItem("Groter"); grootteMenu.add(groterItem); groterItem.addActionListener(this); kleinerItem = new MenuItem("Kleiner"); grootteMenu.add(kleinerItem); kleinerItem.addActionListener(this); menuBalk.add(grootteMenu);

JAVA -- H1011 MENU’S – HOOFDMENU – VOORBEELD2(3) Menu verplaatsMenu = new Menu("Verplaats"); linksItem = new MenuItem("Links"); verplaatsMenu.add(linksItem); linksItem.addActionListener(this); verplaatsMenu.addSeparator(); rechtsItem = new MenuItem("Rechts"); verplaatsMenu.add(rechtsItem); rechtsItem.addActionListener(this); menuBalk.add(verplaatsMenu); setMenuBar(menuBalk); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0); }}); mijnCirkel = new Cirkel(20, 50, 150); }

JAVA -- H1012 MENU’S – HOOFDMENU – VOORBEELD2(4) public void actionPerformed (ActionEvent e) {if (e.getSource() == groterItem) mijnCirkel.wijzigGrootte(10); else if (e.getSource() == kleinerItem) mijnCirkel.wijzigGrootte(-10); else if (e.getSource() == linksItem) mijnCirkel.verplaatsLinks(); else if (e.getSource() == rechtsItem) mijnCirkel.verplaatsRechts(); repaint(); } public void paint(Graphics g) { mijnCirkel.display(g); } }

JAVA -- H1013 MENU’S – HOOFDMENU – VOORBEELD2(5) class Cirkel // = domein { private int diameter; private int xCoord, yCoord; Cirkel(int initDiameter, int initX, int initY) { diameter = initDiameter; xCoord = initX; yCoord = initY; } public void wijzigGrootte(int wijziging) { diameter += wijziging; } public void verplaatsLinks() {xCoord -= 10; } public void verplaatsRechts() { xCoord += 10; } public void display(.Graphics g) { g.drawOval(xCoord, yCoord, diameter, diameter);} }

JAVA -- H1014 MENU’S – SHORTCUT 1. Menu Hoofdmenu’s Shortcuts Popupmenu’s 2. L ayoutmanager FlowLayout BorderLayout CardLayout GridLayout GridBagLayout vlugger toegang tot bepaalde (sub)menu’s bijkomende parameter in constructor van MenuItem gebruik maken van constanten van de klasse KeyEvent toetsen aangeven dmv. virtual key (VK) Voorbeeld: Exit = new MenuItem("Exit", new MenuShortcut (KeyEvent.VK_Q));

JAVA -- H1015 MENU’S – SHORTCUT - VOORBEELD(1) import java.awt.*; import java.awt.event.*; import java.io.*; public class LeesBestand extends Frame implements ActionListener { private MenuItem open, exit; private int aantalE = -1; public static void main(String[] args) { new LeesBestand(); }

JAVA -- H1016 MENU’S – SHORTCUT - VOORBEELD (2) LeesBestand() { MenuBar mBalk = new MenuBar(); setTitle("Filedialoogvenster en karakterinvoer"); setMenuBar(mBalk); Menu mFile = new Menu("Bestand"); mBalk.add(mFile); open = new MenuItem("Open",new MenuShortcut(KeyEvent.VK_O)); exit = new MenuItem("Exit",new MenuShortcut(KeyEvent.VK_Q));

JAVA -- H1017 MENU’S – SHORTCUT - VOORBEELD 1(3) mFile.add(open); mFile.addSeparator(); mFile.add(exit); open.addActionListener(this); exit.addActionListener(this); setSize(getToolkit().getScreenSize().width/2, getToolkit().getScreenSize().height/4); show(); }

JAVA -- H1018 MENU’S – SHORTCUT - VOORBEELD(4) public void actionPerformed (ActionEvent evt) { if ((MenuItem) evt.getSource() == exit)System.exit(0); FileDialog dial = new FileDialog( this,"Open", FileDialog.LOAD); dial.show(); String fNaam = dial.getFile(), fDir = dial.getDirectory(); if (fNaam == null || fDir == null) return; FileInputStream fis; try {fis = new FileInputStream(fDir + fNaam);} catch(FileNotFoundException fnfe) { getToolkit().beep(); return;}

JAVA -- H1019 MENU’S – SHORTCUT - VOORBEELD(5) try { aantalE = 0; for ( ; ; ) { int chInt = fis.read(); if (chInt == -1) break; // EOF if (chInt == 'e' || chInt == 'E') aantalE++; } fis.close(); } catch(IOException ioe) { } repaint(); }

JAVA -- H1020 MENU’S – SHORTCUT - VOORBEELD(6) public void paint(Graphics g) { if (aantalE >= 0) g.drawString("Aantal letters e of E = “ + aantalE, 80, 120); } FileInputStream leest sequentieel bytes van een stream: byte[] buffer = new byte[4096]; int bytes_read; while ((bytes_read = from.read(buffer))!=-1) to.write(buffer,0,bytes_read);

JAVA -- H1021 MENU’S – POPUPMENU Aanmaken van een menu in een component of frame Snel en gemakkelijk Geen toegangs-geheugentoetsen, zoals F10 (= naar menu-bar), maar eens geselecteerd kunnen we terug met de pijltjestoetsen werken PopupMenu: subklasse van Menu Via methode show(Component source, int x, int y) 1. Menu Hoofdmenu’s Shortcuts Popupmenu’s 2. L ayoutmanager FlowLayout BorderLayout CardLayout GridLayout GridBagLayout

JAVA -- H1022 MENU’S – POPUPMENU -- VOORBEELD(1) import java.awt.*; import java.awt.event.*; import java.io.*; public class PopupDemo extends Frame implements ActionListener { PopupMenu p; CvPopupMenu cv; MenuItem rood, groen, blauw, keuze = null; public static void main(String[] args) { new PopupDemo(); }

JAVA -- H1023 MENU’S – POPUPMENU - VOORBEELD(2) PopupDemo() { setTitle("Klik eerst met rechtermuisknop"); cv = new CvPopupMenu(this); add(cv, "Center"); p = new PopupMenu(); rood = pVoegToe("Rood"); groen = pVoegToe("Groen"); blauw = pVoegToe("Blauw"); cv.add(p); show(); }

JAVA -- H1024 MENU’S – POPUPMENU - VOORBEELD(3) MenuItem pVoegToe(String s) { MenuItem mi = new MenuItem(s); mi.addActionListener(this); p.add(mi); return mi; } public void actionPerformed(ActionEvent e) { keuze = (MenuItem)e.getSource(); cv.repaint(); }

JAVA -- H1025 MENU’S – POPUPMENU - VOORBEELD(4) class CvPopupMenu extends Canvas { private PopupDemo fr; // communicatie met andere klasse void toon(MouseEvent e) { fr.p.show(this, e.getX(), e.getY());} CvPopupMenu(PopupDemo fr) { this.fr = fr; addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { if ((e.getModifiers() & InputEvent.BUTTON3_MASK) != 0) toon(e); else repaint(); } ); }

JAVA -- H1026 MENU’S – POPUPMENU - VOORBEELD(5) public void paint(Graphics g) { if (fr.keuze == null) return; Color kl = (fr.keuze == fr.rood ? Color.red : fr.keuze == fr.groen ? Color.green : Color.blue); g.setColor(kl); Dimension d = getSize(); // grootte van de frame g.fillOval(0, 0, d.width, d.height); }

JAVA -- H1027 MENU’S – POPUPMENU - VOORBEELD

JAVA -- H1028 Soorten: FlowLayout BorderLayout CardLayout GridLayout GridBagLayout BoxLayout (Swing) Instellen: setLayout( …..) of setLayout(null) Opvragen: getLayout() LAYOUT MANAGERS 1. Menu Hoofdmenu’s Shortcuts Popupmenu’s 2. L ayoutmanager FlowLayout BorderLayout CardLayout GridLayout GridBagLayout

JAVA -- H1029 import java.applet.Applet; import java.awt.*; public class FlowApplet extends Applet // default FlowLayout { Button knop1 = new Button("Ik"); Button knop2 = new Button("denk,"); Button knop3 = new Button("dus"); Button knop4 = new Button("ik"); Button knop5 = new Button("ben"); LAYOUT MANAGERS – VOORBEELD FLOWLAYOUT

JAVA -- H1030 public void init() { setLayout(new FlowLayout()); add(knop1); add(knop2); add(knop3); add(knop4); add(knop5); setVisible(true); } LAYOUT MANAGERS – VOORBEELD FLOWLAYOUT

JAVA -- H1031 LAYOUT MANAGERS – VOORBEELD FLOWLAYOUT FlowLayout.CENTER + hgap = vgap = 5 (default-constructor)

JAVA -- H1032 LAYOUT MANAGERS – VOORBEELD BORDERLAYOUT public void init() { setLayout(new BorderLayout()); add(knop1, "North"); add(knop2, "South"); add(knop3, "East"); add(knop4, "West"); add(knop5, "Center"); setVisible(true); }

JAVA -- H1033 LAYOUT MANAGERS – VOORBEELD BORDERLAYOUT hgap = vgap = 0

JAVA -- H1034 LAYOUT MANAGERS – VOORBEELD CARDLAYOUT CardLayout layout = new CardLayout(); public void init() { setLayout(layout); add(knop1,”Eén”); add(knop2,”Twee”); add(knop3,”Drie”); add(knop4,”Vier”); add(knop5,”Vijf”); setVisible(true); }

JAVA -- H1035 LAYOUT MANAGERS – VOORBEELD CARDLAYOUT public void start() { for (int kaarten = 1; kaarten < 50; kaarten ++) { layout.next(this); for (int pauze = 1; pauze < ; pauze++); }

JAVA -- H1036 LAYOUT MANAGERS – VOORBEELD CARDLAYOUT Bijkomende methoden: first (Container) last (Container) next (Container) previous (Container) show (Container, Card) bv. layout.show(this,Vijf);

JAVA -- H1037 LAYOUT MANAGERS – VOORBEELD CARDLAYOUT hgap = vgap = 0

JAVA -- H1038 LAYOUT MANAGERS – GRIDLAYOUT 1. Menu Hoofdmenu’s Shortcuts Popupmenu’s 2. L ayoutmanager FlowLayout BorderLayout CardLayout GridLayout GridBagLayout alle componenten zijn even groot raster met opgegeven aantal rijen en kolommen afmetingen van de cellen veranderen samen met de afmetingen van het venster

JAVA -- H1039 LAYOUT MANAGERS – VOORBEELD GRIDLAYOUT public void init() { setLayout(new GridLayout(2, 3)); add(knop1); add(knop2); add(knop3); add(knop4); add(knop5); setVisible(true); }

JAVA -- H1040 LAYOUT MANAGERS – VOORBEELD GRIDLAYOUT hgap = vgap = 0

JAVA -- H1041 LAYOUT MANAGERS – GRIDBAGLAYOUT 1. Menu Hoofdmenu’s Shortcuts Popupmenu’s 2. L ayoutmanager FlowLayout BorderLayout CardLayout GridLayout GridBagLayout opsplitsing in rijen en kolommen component kan meerdere cellen in beslag nemen klasse GridBagConstraints om per component bepaalde eigenschappen (constraints) vast te leggen constraints instellen d.m.v. setConstraints (Java 1.0) of via de add-methode (Java 1.1)

JAVA -- H1042 LAYOUT MANAGERS – GRIDBAGLAYOUT Velden van het GridBagConstraints-object: gridx en gridy : de positie van de component in het grid gridwidth en gridheight : aantal rijen en kolommen, dat de component in de grid inneemt insets : specifieert de marge, in aantal pixels, dat moet vrij- gelaten worden rond de component fill : specifieert hoe een component moet groeien, wanneer er meer plaats ter beschikking is anchor : als een component kleiner is dan de cel waarin hij wordt geplaatst, geeft deze variabele aan hoe de component moet worden opgesteld

JAVA -- H1043 LAYOUT MANAGERS – GRIDBAGLAYOUT weightx en weighty: als in de container nog plaats over is, wordt de ruimte volgens de “gewichten” opgedeeld (1.0 betekent : de resterende ruimte mag volledig benut worden) Voorbeeld 1: GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; c.insets = new Insets(5,5,5,5); c.gridx = 0; c.gridy = 0; c.gridwidth = 4; c.gridheight = 4; c.weightx = c.weighty = 1.0; add(new Button(“Button #1”),c); c.gridx = 4; c.gridy = 0; c.gridwidth = 1; c.gridheight = 1; c.weightx = c.weighty = 0.0; add(new Button(“Button #2”),c); c.gridx = 4; c.gridy = 1; c.gridwidth = 1; c.gridheight = 1; add(new Button(“Button #3”),c); c.gridx = 4; c.gridy = 2; c.gridwidth = 1; c.gridheight = 2; add(new Button(“Button #4”),c);

JAVA -- H1044 LAYOUT MANAGERS – VOORBEELD 2 GRIDBAGLAYOUT

JAVA -- H1045 LAYOUT MANAGERS – VOORBEELD 2 GRIDBAGLAYOUT import java.applet.Applet; import java.awt.*; public class Grid_Bag extends Applet { private Button knop1 = new Button("Ik"); private Button knop2 = new Button("denk,"); private Button knop3 = new Button("dus"); private Button knop4 = new Button("ik"); private Button knop5 = new Button("ben"); private GridBagLayout gridBag = new GridBagLayout(); }

JAVA -- H1046 LAYOUT MANAGERS – VOORBEELD 2 GRIDBAGLAYOUT private void eerste_rij (Button knop) {GridBagConstraints constraints = new GridBagConstraints(); constraints.gridwidth = GridBagConstraints.REMAINDER; // de component mag de resterende ruimte innemen constraints.anchor = GridBagConstraints.WEST; // de component moet westelijk staan t.o.v. de rij gridBag.setConstraints (knop, constraints); add(knop); }

JAVA -- H1047 LAYOUT MANAGERS – VOORBEELD 2 GRIDBAGLAYOUT private void tweede_rij (Button knop1, Button knop2) { GridBagConstraints constraints = new GridBagConstraints(); constraints.fill = GridBagConstraints.HORIZONTAL; constraints.weightx = 1.0; gridBag.setConstraints(knop1, constraints); add(knop1); constraints = new GridBagConstraints(); constraints. gridwidth = GridBagConstraints.REMAINDER; constraints.fill = GridBagConstraints.VERTICAL; constraints.weighty = 1.0; // de resterende ruimte innemen gridBag.setConstraints(knop2, constraints); add(knop2); }

JAVA -- H1048 LAYOUT MANAGERS – VOORBEELD 2 GRIDBAGLAYOUT private void derde_rij (Button knop) { GridBagConstraints constraints = new GridBagConstraints(); constraints. gridwidth = GridBagConstraints.REMAINDER; constraints.fill = GridBagConstraints.BOTH; // de component moet in beide richtingen aangroeien constraints.weighty = 1.0; gridBag.setConstraints(knop, constraints); add(knop); }

JAVA -- H1049 LAYOUT MANAGERS - VOORBEELD 2 GRIDBAGLAYOUT private void vierde_rij (Button knop) { GridBagConstraints constraints = new GridBagConstraints(); constraints. gridwidth = GridBagConstraints.REMAINDER; gridBag.setConstraints(knop, constraints); add(knop); // wordt default centraal gezet rij 1 }

JAVA -- H1050 LAYOUT MANAGERS – VOORBEELD 2 GRIDBAGLAYOUT public void init() { setLayout( gridBag); eerste_rij(knop1); tweede_rij(knop2, knop3); derde_rij(knop4); vierde_rij(knop5); setVisible(true); }

JAVA -- H1051 LAYOUT MANAGERS – BOXLAYOUT Voorbeeld: JPanel p = new JPanel(); p.setLayout(new BoxLayout(p,BoxLayout.Y_AXIS)); p.setBorder(newTitledBorder(new EtchedBorder(),”Column”)); for (int i = 0;i < 4;i++) { JButton b = new JButton(“Button” + i); b.setFont(new Font(“serif”,Font.BOLD,10+i*2)); p.add(b); }