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
| public class bioApp1 extends Frame { public bioApp1() { Label test; TextField loginVeld = new TextField(); add(loginVeld); loginVeld.setBounds(200, 100, 100, 20); TextField paswoordVeld = new TextField(); add(paswoordVeld); paswoordVeld.setBounds(200, 150, 100, 20); final String login = loginVeld.getText(); final String pass = paswoordVeld.getText(); test = new Label("", Label.CENTER); test.setBounds(250,250,100,20); add(test); Button loginButton = new Button("Login"); loginButton.setBounds(100, 250, 100, 20); add(loginButton); loginButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if ((login.equals("a")) && (pass.equals("b"))) test.setText("Login OK"); } } ); } //Main method public static void main(String[] args) { new bioApp1(); } } |
het probleem zit hem in de inner class, die zegt dat Test (is een label) niet final is. Maar als ik die final maak dan kan ik die niet meer veranderen.
Maar het vreemde is in een andere programma van me, staat ook zo'n inner class en ook met een referentie naar een label en die werkt wel, zonder dat ik die label final maak.
De volgende code werkt wel
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| Label moveTekst; moveTekst = new Label("", Label.CENTER); moveTekst.setBounds(55, 380, 200, 20); knopOpvragen.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { moveTekst.setBackground(Color.white); moveTekst.setText("De beelden worden opgevraagd"); paneel.setVisible(true); opvraag.beeldjesOpvragen(); } } ); |
[ Voor 28% gewijzigd door Verwijderd op 25-04-2005 12:43 ]