Na een tijdje niks gedaan te hebben met java ben ik weer eens wat gaan proberen met java en swing.
Erg veel voorbeelden in boeken en op internet gebruiken button.addactionlistener(this), en dan bij actionPerformed checken met getSource waar de action vandaan komt. Dit vond ik direct al erg smerig, want als je een wat grotere gui hebt met veel knoppen krijg je daar een ontzettend lange lijst met if'jes.
Maar naar wat zoeken op got vond ik actions. Voorbeeld
Dit werkt aanzich goed, maar er zijn 2 dingen die ik me afvraag.
Waar ga ik al deze klassen neerzetten? Moet ik elke klasse in een eigen bestand zetten en eventueel al deze bestanden in een package? Of is er iets gemakkelijkers? Ik las in een topic [rml]mbravenboer in "[ Java] ActionListeners vs Action"[/rml] iets over een controller, maar daar begreep ik helaas niet veel van.
Als tweede, op deze manier moet je bij elke class
neer zetten (uiteraard wel de goede naam voor de constructor), kan dat ook niet gemakkelijke? Nu heb je dadelijk tientallen keren bijna het zelfde stukje code.
Ik kon hier verder niet veel over vinden op got, ook niet met google, verder als de standaard voorbeeldjes kwam ik niet.
Erg veel voorbeelden in boeken en op internet gebruiken button.addactionlistener(this), en dan bij actionPerformed checken met getSource waar de action vandaan komt. Dit vond ik direct al erg smerig, want als je een wat grotere gui hebt met veel knoppen krijg je daar een ontzettend lange lijst met if'jes.
Maar naar wat zoeken op got vond ik actions. Voorbeeld
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| OpenAction openAction = new OpenAction("Open", null, "Open a file", new Integer('O')); JButton open = new JButton(openAction); ......................... class OpenAction extends AbstractAction { public OpenAction(String text, ImageIcon icon, String desc, Integer mnemonic) { super(text, icon); putValue(SHORT_DESCRIPTION, desc); putValue(MNEMONIC_KEY, mnemonic); } public void actionPerformed(ActionEvent e) { System.out.println("Actie!"); } } |
Dit werkt aanzich goed, maar er zijn 2 dingen die ik me afvraag.
Waar ga ik al deze klassen neerzetten? Moet ik elke klasse in een eigen bestand zetten en eventueel al deze bestanden in een package? Of is er iets gemakkelijkers? Ik las in een topic [rml]mbravenboer in "[ Java] ActionListeners vs Action"[/rml] iets over een controller, maar daar begreep ik helaas niet veel van.
Als tweede, op deze manier moet je bij elke class
Java:
1
2
3
4
5
6
| public OpenAction(String text, ImageIcon icon, String desc, Integer mnemonic) { super(text, icon); putValue(SHORT_DESCRIPTION, desc); putValue(MNEMONIC_KEY, mnemonic); } |
neer zetten (uiteraard wel de goede naam voor de constructor), kan dat ook niet gemakkelijke? Nu heb je dadelijk tientallen keren bijna het zelfde stukje code.
Ik kon hier verder niet veel over vinden op got, ook niet met google, verder als de standaard voorbeeldjes kwam ik niet.