Als stageopdracht moet ik een programma afmaken van mijn voorganger, deze maakt aan de hand van enkele hashtables een layout aan in swing. Erg makkelijk met het opbouwen van een layout, maar uitlezen is een ander verhaal. Is het uberhaupt mogelijk om bijvoorbeeld een tfield uit te lezen? Aangezien er een stuk of 10 JTextFields worden aangemaakt met de variable naam tfield, heb ik
tfield.setName(...);
toegevoegd, maar ik kom er verder niet uit... Ironisch genoeg heb ik nog niks kunnen vinden op google noch sun.com...
Ik dacht iets in de richting van
waarde = tfield.getName().equals("portname").getText();
maar niet al te gek werkt dit niet aangeziend equals een boolean terug geeft...
tfield.setName(...);
toegevoegd, maar ik kom er verder niet uit... Ironisch genoeg heb ik nog niks kunnen vinden op google noch sun.com...
Ik dacht iets in de richting van
waarde = tfield.getName().equals("portname").getText();
maar niet al te gek werkt dit niet aangeziend equals een boolean terug geeft...
Java:
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
48
49
50
51
52
| while(groupkeys.hasMoreElements()) { String groupname=groupkeys.nextElement(); SettingsGroup group=groups.get(groupname); JPanel panel=new JPanel(); panel.setLayout(null); int ypos=5; //get all settings contained in this group, create a label and textfield Hashtable<String,Setting> settings=group.getSettings(); Enumeration<String> settingkeys=settings.keys(); while(settingkeys.hasMoreElements()) { String settingname=settingkeys.nextElement(); Setting setting=settings.get(settingname); JLabel label=new JLabel(setting.getDescription()); label.setBounds(5,ypos,200,20); panel.add(label); //check if the contained value is a string/integer or boolean and match the way of editting Object val=setting.getValue(); if (val instanceof Boolean) { cfield=new JCheckBox(); cfield.setName(setting.getValue().toString()); // om te onderscheiden cfield.setSelected((Boolean)val); cfield.setBounds(205, ypos, 200, 20); panel.add(cfield); } else { //JTextField tfield=new JTextField(setting.getValue().toString()); tfield.setBounds(205, ypos, 200, 20); tfield.setName(setting.getValue().toString()); // om te onderscheiden //field.addFocusListener(this); panel.add(tfield); } ypos+=25; } tabpane.addTab(groupname,panel); } |