El_Jacko: tips zijn welkom

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel pane = new JPanel();
TransparentImage achtergrond = new TransparentImage();
MenuBar menuBar1 = new MenuBar();
Menu menuView = new Menu();
MenuItem klantBeheer = new MenuItem();
Menu menuHome = new Menu();
Menu menuHelp = new Menu();
MenuItem menuHelpAbout = new MenuItem();
MenuItem menuHelpHelp = new MenuItem();
MenuItem menuViewKlBeheer = new MenuItem();
MenuItem menuViewBHWPPlanning = new MenuItem();
MenuItem menuViewOpmkWerkBon = new MenuItem();
MenuItem menuViewBSBHLeenAuto = new MenuItem();
MenuItem menuViewSTDWerkzaamheden = new MenuItem();
MenuItem menuHomeQuit = new MenuItem();
JPanel panelWPPlanning = new JPanel();
XYLayout xYLayout2 = new XYLayout();
Database database1 = new Database();
JdbNavToolBar jdbNavToolBar1 = new JdbNavToolBar();
JLabel labelOpdrachtNr = new JLabel();
JLabel labelDatum = new JLabel();
JLabel labelTijd = new JLabel();
JLabel labelPersoneelID = new JLabel();
JLabel labelTitel = new JLabel();
JdbTextField jdbOpdrachtNr = new JdbTextField();
JdbTextField jdbDatum = new JdbTextField();
JdbTextField jdbTijd = new JdbTextField();
JdbTextField jdbPersoneelID = new JdbTextField();
JdbTextField jdbDatumTijd = new JdbTextField();
JLabel labelWerkID = new JLabel();
JLabel labelTitel1 = new JLabel();
XYLayout xYLayout3 = new XYLayout();
JLabel labelPersoneelIDWB = new JLabel();
JdbTextField jdbOpdrachtNr1 = new JdbTextField();
JdbTextField jdbPersoneelIDWB = new JdbTextField();
JdbTextField jdbWerkID = new JdbTextField();
JPanel panelOpmknWerkBon = new JPanel();
JdbNavToolBar jdbNavToolBar2 = new JdbNavToolBar();
JLabel labelDatumTijd = new JLabel();
JLabel labelOpdrachtNr1 = new JLabel();
JLabel labelChassisNR = new JLabel();
JLabel labelWerkBonID = new JLabel();
JdbTextField jdbChassisNR = new JdbTextField();
JdbTextField jdbWerkBonID = new JdbTextField();
CardLayout cardLayout1 = new CardLayout(); |
Het is absoluut onnodig om zoveel instantie variabelen te gebruiken. Als ik mij even uit zou leven, zou dit gereduceerd worden tot 1 of 2. Voor labels is het onzin, voor menu's, buttons en menu-items is het onnodig als je nette ActionListeners gebruikt en voor layouts is het helemaal onzin. Voor textfields is het helaas noodzakelijk als je niet volledig model-gebaseerd werkt. Die zouden dus alleen overblijven
code:
1
2
3
4
5
6
| menuHome.setLabel("Home");
menuView.setLabel("View");
menuHelp.setLabel("Help"); menuHelpAbout.setLabel("About");
menuHelpHelp.setLabel("Help");
menuViewKlBeheer.setLabel("Klantgegevens");
... |
Het is efficienter en fraaier om dit gelijk aan de constructor mee te geven.
code:
1
2
3
4
5
| menuViewBHWPPlanning.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
menuViewBHWPPlanning_actionPerformed(e);
}
}); |
Yakkie, anonieme inner-classes en doorsluizen naar een vage methode naam

. Wat is die automatisch gegenereerde zooi van JBuilder toch om te grienen

.
code:
1
2
3
4
5
6
7
8
| labelPersoneelID.setFont(new java.awt.Font("Dialog", 1, 12));
labelTitel.setFont(new java.awt.Font("Dialog", 1, 25));
labelWerkID.setFont(new java.awt.Font("Dialog", 1, 12));
labelTitel1.setFont(new java.awt.Font("Dialog", 1, 25));
labelPersoneelIDWB.setFont(new java.awt.Font("Dialog", 1, 12));
labelDatumTijd.setFont(new java.awt.Font("Dialog", 1, 12));
labelOpdrachtNr1.setFont(new java.awt.Font("Dialog", 1, 12));
labelChassisNR.setFont(new java.awt.Font("Dialog", 1, 12)); |
Hier worden steeds nieuwe Fonts aangemaakt -> duur en onnodig. Bovendien heel erg lastig handmatig aan te passen.
code:
1
2
| achtergrond.setImageName("C:\\Documents and
Settings\\Jacques Maas\\Desktop\\oldtimer\\oldtimer.jpg"); |
Hum, wilde je je applicatie ooit nog aan iemand anders geven, laat staan op een ander platform draaien?

.
Verder ben ik niet echt gecharmeerd van die XYLayout, maar dat moet je verder zelf weten natuurlijk

.
Ok, dat was het... een beetje veel commentaar misschien en allemaal op automatisch gegenereerde code, maar ik zag alleen maar automatisch gegenereerde code

. Als ik dit zie verbaasd het mij geen moment dat Java GUIs als traag worden ervaren, want: dit is ook traag. Voor deze GUI worden werkelijke vrachten onnodige objecten aangemaakt, om het nog maar niet te hebben over de onnodige methode aanroepen... Als je echt een goede GUI in elkaar wilt zetten moet je naar mijn mening toch echt met de hand gaan werken en Swing gebruiken...