[JAVA] Error bij List

Pagina: 1
Acties:

  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
ik heb zo ongeveer de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private List fileList;
fileList.addActionListener(new FilelistAction());

Panel r = new Panel(new StackLayout(3));
       r.add(makeList());
       add(BorderLayout.WEST, r);

//VERDEROP IN DE CODE
   public List makeList(){
         fileList = new List(14, false);
         fileList.add("test1");
         fileList.add("test2");
       return fileList;
       }

//DE KLASSE VOOR DE ACTION
    class FilelistAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           // String file = filelist.getSelectedItem();
           // System.out.println(file);
        }
    }

ik heb ook al geprobeerd om de action te vangen met een ItemListener (net als bij een checkbox), maar dat geeft dezelfde fout.

Als ik de 2e regel in de code weglaat (die ene die de actionlistener toewijst aan de List)
dan doettie het perfect. een mooi menu links, met de 2 items.
Maar als ik de 2e regel erbij zet, krijg ik de volgende runtime-error:
code:
1
2
3
4
5
6
java.lang.reflect.InvocationTargetException: java.lang.NullPointerException
      at Editor.<init>(Editor.java:112)
      at Main.main(Main.java:6)
      at java.lang.reflect.Method.invoke(Native Method)
      at com.borland.jbuilder.util.BootStrap.invokeMain(Unknown Source)
      at com.borland.jbuilder.util.BootStrap.main(Unknown Source)

tip: regel 112 is die regel 2 uit het voorbeeld.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum je melding is wat ingewikkeld omdat je het kennelijk in JBuilder runt. JBuilder roept met behulp van reflectie de main methode aan.

Je zegt het in feite zelf al: de fout zit in die tweede regel. De fout is in werkelijkheid een NullPointerException. Een NullPointerException krijg je als je een methode aanroept op een variabele die 'null' is. Een variabele is null, als hij niet naar een Object wijst. Meestal komt dit omdt hij nog niet geinitialiseerd is. Dat moet het in dat geval wel zijn. fileList is waarschijnlijk dus null.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
hmz..
..maar waarom is mijn fileList dan null,
terwijl al mijn buttons etc, op dezelfde manier gemaakt zijn en wél werken? :)

trouwens,
Ik heb nou de regel:
List fileList = new List(14, false);
tussen de 1e en 2e regel ingezet van het voorbeeld hierboven... werkt helaas niet :( zelfde error.

[very offtopic!]
hoe krijg je eigenlijk urls in je signature??
[/very offtopic!]

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Zynth: maar waarom is mijn fileList dan null
Tja, das een kwestie van control-flow uitzoeken... Zo te zien maak je je lijst aan in makeList(). Weet je zeker dat deze methode is aangeroepen voor je de ActionListener toevoegt?
terwijl al mijn buttons etc, op dezelfde manier gemaakt zijn en wél werken? :)
Tja, ergens toch een stom foutje denk ik :) .
als ik die 2e regel NA het vullen van de lijst doe,
dan werkt het nog niet...
Das vreemd.
oftewel; werkt het überhaupt wel op deze manier met Lists?? of zit ik gewoon helemaal fout ;)
Tja, het ziet er wel goed uit. Post anders eens wat meer code?
hoe krijg je eigenlijk urls in je signature??
Gewoon net zoals in een post:
code:
1
[url=http://java.sun.com/tutorial]Java Tutorial[/url]

resultaat:

Java Tutorial

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
plz forgive me 4 the mess I made :)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
import java.awt.*;
import java.awt.event.*;
import java.lang.reflect.*;
import java.awt.datatransfer.*;
import javax.swing.*;


public class Editor extends Frame implements ActionListener{

    private String[] markuplist = {"<B>","</B>","<U>","</U>","<I>","</I>"};
    public String copy;
    private List fileList;

    public boolean truth;
    private TextArea textField;
    //File Menu
    private MenuItem exitMenuItem;
    private MenuItem sendMenuItem;
    private MenuItem resetMenuItem;
    //Edit Menu
    private MenuItem cutMenuItem;
    private MenuItem copyMenuItem;
    private MenuItem pasteMenuItem;
    private MenuItem deleteMenuItem;
    private MenuItem boldMenuItem;
    private MenuItem italicMenuItem;
    private MenuItem underlineMenuItem;
    private CheckboxMenuItem boxMenuItem;
    private MenuItem selectallMenuItem;
    //Help Menu
    private MenuItem helpMenuItem;
    private MenuItem aboutMenuItem;
    private CloseAction closeAction;
    Window window;

    public Editor(){
        super("AACS GUI Try-out");
        setLayout(new BorderLayout(5,5));
         

         MenuBar menuBar = new MenuBar();
        //Menu File
        Menu fileMenu = new Menu("File");
        fileMenu.add(sendMenuItem = new MenuItem("Send"));
        fileMenu.add(resetMenuItem = new MenuItem("Reset"));
        fileMenu.addSeparator();
        fileMenu.add(exitMenuItem = new MenuItem("Exit"));
        menuBar.add(fileMenu);
        //Menu Edit
        Menu editMenu = new Menu("Edit");
        editMenu.add(cutMenuItem = new MenuItem("Cut"));
        editMenu.add(copyMenuItem = new MenuItem("Copy"));
        editMenu.add(pasteMenuItem = new MenuItem("Paste"));
        editMenu.add(deleteMenuItem = new MenuItem("Delete"));
        editMenu.addSeparator();
        editMenu.add(boldMenuItem = new MenuItem("Bold"));
        editMenu.add(italicMenuItem = new MenuItem("Italic"));
        editMenu.add(underlineMenuItem = new MenuItem("Underline"));
        editMenu.addSeparator();
        editMenu.add(boxMenuItem = new CheckboxMenuItem("Automatische Terugloop",false));
        editMenu.add(selectallMenuItem = new MenuItem("Select All"));
        menuBar.add(editMenu);
        //Menu Help
        Menu helpMenu  = new Menu("Help");
        helpMenu.add(helpMenuItem = new MenuItem("Help"));
        helpMenu.addSeparator();
        helpMenu.add(aboutMenuItem = new MenuItem("About"));
        menuBar.add(helpMenu);
        setMenuBar(menuBar);


        // assignments als parameter (expressie ) gebruiken
        // is niet mooi -> aparte assignments

        Button sendButton   = new Button("Send");
        Button resetButton     = new Button("reset");
        Button boldButton   = new Button("Bold");
        Button italicButton    = new Button("Italic");
        Button underlineButton = new Button("Underline");
        Button clearmarkupButton = new Button("Clear Markup");
        Button makehtmlButton  = new Button("Make HTML");
        List fileList = new List(14, false);

        closeAction = new CloseAction(window);

        //ActionListeners
        //Buttons
        sendButton.addActionListener(new SendAction());
        resetButton.addActionListener(new ResetAction());
        boldButton.addActionListener(new BoldAction());
        italicButton.addActionListener(new ItalicAction());
        underlineButton.addActionListener(new UnderlineAction());
        clearmarkupButton.addActionListener(new ClearMarkupAction());
        makehtmlButton.addActionListener(new MakehtmlAction());
        //File Menu
        sendMenuItem.addActionListener(new SendAction());
        resetMenuItem.addActionListener(new ResetAction());
        exitMenuItem.addActionListener(new ExitAction());
        //Edit Menu
        cutMenuItem.addActionListener(new CutAction());
        copyMenuItem.addActionListener(new CopyAction());
        pasteMenuItem.addActionListener(new PasteAction());
        deleteMenuItem.addActionListener(new DeleteAction());
        boldMenuItem.addActionListener(new BoldAction());
        italicMenuItem.addActionListener(new ItalicAction());
        underlineMenuItem.addActionListener(new UnderlineAction());
        boxMenuItem.addItemListener(new BoxAction());
        selectallMenuItem.addActionListener(new SelectAllAction());
        //Help Menu
        helpMenuItem.addActionListener(new HelpAction());
        aboutMenuItem.addActionListener(new AboutAction());
        //File List
        fileList.addActionListener(new FilelistAction());


        Panel p = new Panel();
        p.add(sendButton);
        p.add(resetButton);
        add(BorderLayout.SOUTH, p);

        Panel q = new Panel(new StackLayout(3));
        q.add(new JLabel("Markup"));
        q.add(new JLabel("-----------"));
        q.add(boldButton);
        q.add(italicButton);
        q.add(underlineButton);
        q.add(clearmarkupButton);
        q.add(makehtmlButton);
        add(BorderLayout.EAST, q);

       Panel r = new Panel(new StackLayout(3));
       r.add(makeList());
       add(BorderLayout.WEST, r);

        textField = new TextArea(30,70);
        add(BorderLayout.CENTER, textField);

        setBackground(Color.lightGray);
         setSize(600,400);

         //Venster positioneren
         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = getSize();
        if (frameSize.height > screenSize.height){
          frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width){
          frameSize.width = screenSize.width;
        }
        setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 4);
         //EO Venster positioneren

         setVisible(true);


    addWindowListener(new WindowAdapter()
    {
      public void windowClosing(WindowEvent e)
      {
        close();
      }
    });

    }


     public void actionPerformed(ActionEvent e){}
     private void close(){
       System.exit(0);
     }

    public List makeList(){
         fileList.add("test1");
         fileList.add("test2");
       return fileList;
       }


    public CloseAction getCloseAction(){
        return closeAction;
    }

    // liever aparte ActionListeners dan gevalsonderscheid in 1 ActionListener

    class CloseAction extends WindowAdapter implements ActionListener{

        private Window window;

        public CloseAction(Window window){
            super();
            this.window = window;
        }

        public void windowClosing(WindowEvent e){
            window.setVisible(false); System.exit(0);
        }

        public void actionPerformed(ActionEvent event){
            window.setVisible(false); System.exit(0);
        }
    }


     //********************************************
     //  SPECIAL ACTION CLASSES!!!      //
     //********************************************

    class FilelistAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           // String file = filelist.getSelectedItem();
           // System.out.println(file);
        }
    }


     //SOUTH PANEL
    class SendAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            new SentMail();
        }
    }

    class ResetAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            textField.setText("");
        }
    }

    class ExitAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           System.exit(0);
        }
    }

//HELP-BAR OPTIONS
    class HelpAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           new Help();
        }
    }

    class AboutAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           System.out.println("about");
           new About();
        }
    }




//EDIT-BAR OPTIONS
    class CutAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           copy = textField.getSelectedText();
           textField.replaceRange("",begin,end);
        }
    }

    class CopyAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           copy = textField.getSelectedText();
        }
    }

    class PasteAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.replaceRange(copy,begin,end);
        }
    }

    class DeleteAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.replaceRange("",begin,end);
        }
    }

    class BoldAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.insert("</B>",end);
           textField.insert("<B>",begin);
        }
    }

    class ItalicAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.insert("</I>",end);
           textField.insert("<I>",begin);
        }
    }

    class UnderlineAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.insert("</U>",end);
           textField.insert("<U>",begin);
         }
    }

    class ClearMarkupAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           String text = textField.getText();
           for(int i=0;i<Array.getLength(markuplist);i++){
             text = MiscFunctions.replace(text,markuplist[i],"");
           }
           text = MiscFunctions.replace(text,"<BR>","\n");
           text = MiscFunctions.replace(text,"&nbsp;"," ");
           textField.setText(text);
       }
    }

    class MakehtmlAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            String text = textField.getText();
            text = MiscFunctions.replace(text,"\n","<BR>");
            text = MiscFunctions.replace(text,"  ","&nbsp;&nbsp;");
            textField.setText(text);
        }
    }

    class BoxAction implements ItemListener{
        public void itemStateChanged(ItemEvent event){
            boxMenuItem.setState(false);
            new Help();
        }
    }

    class SelectAllAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            textField.selectAll();
        }
    }
}

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Wowie, wat een zooi ;) .

Je code is erg verwarrend:

Je maakt in je constructor een fileList met dit stukje code:
code:
1
List fileList = new List(14, false);

Dat is verwarrend omdat je ook een makeList hebt... Bovendien declareer je hier een nieuwe, lokale fileList, wat dus niet je instantie variabele is! Daarna meldt je een ActionListener aan:
code:
1
fileList.addActionListener(new FilelistAction());

De fileList is hier inderdaad niet null, maar het is dus wel de lokale fileList!

Verderop doe je weer dit:
code:
1
r.add(makeList());

Conclusie: dit is echt hele kleverige spaghetti ;) . Probeer je aanpak een beetje duidelijk te maken :) . De List die makeList returned is ook weer heel vaag. Gebruik bovendien liever geen assignments als expressies zoals ik had voorgedaan...

Nog een tip: als je losse ActionListeners aanmeld op je MenuItems en Buttons hoef je die niet allemaal instantie variabelen te maken, zoals ik had voorgedaan in mijn eerste verbouwing.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
thnx!
ik heb het aan de gang.
werkt goed nou! :)

  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
alsof het nog niet erg genoeg was :)
alles werkt (ik heb het aanmaken van de actionlistener NA het vullen van de lijst gezet).
Als ik bijvoorbeeld in de actionklasse van de list zet:
system.out.println("hoi");
dan print hij dat netjes als ik op een item in de list dubbelklik; geen probleem.
Maar als ik daar:
System.out.println(filelist.getSelectedItem());
neerzet, dan krijg ik een nulpointer-exception in die regel.

terwijl als ik die regel vlak achter het aanmaken van de actionlistener zet (dus gewoon in de constructor),
dan werkt hij wel!
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
import java.awt.*;
import java.awt.event.*;
import java.lang.reflect.*;
import java.awt.datatransfer.*;
import javax.swing.*;


public class Editor extends Frame implements ActionListener{

    private String[] markuplist = {"<B>","</B>","<U>","</U>","<I>","</I>"};
    public String copy;
    private List filelist;

    public boolean truth;
    private TextArea textField;
    //File Menu
    private MenuItem exitMenuItem;
    private MenuItem sendMenuItem;
    private MenuItem resetMenuItem;
    //Edit Menu
    private MenuItem cutMenuItem;
    private MenuItem copyMenuItem;
    private MenuItem pasteMenuItem;
    private MenuItem deleteMenuItem;
    private MenuItem boldMenuItem;
    private MenuItem italicMenuItem;
    private MenuItem underlineMenuItem;
    private CheckboxMenuItem boxMenuItem;
    private MenuItem selectallMenuItem;
    //Help Menu
    private MenuItem helpMenuItem;
    private MenuItem aboutMenuItem;
    private CloseAction closeAction;
    Window window;

    public Editor(){
        super("AACS GUI Try-out");
        setLayout(new BorderLayout(5,5));
         

         MenuBar menuBar = new MenuBar();
        //Menu File
        Menu fileMenu = new Menu("File");
        fileMenu.add(sendMenuItem = new MenuItem("Send"));
        fileMenu.add(resetMenuItem = new MenuItem("Reset"));
        fileMenu.addSeparator();
        fileMenu.add(exitMenuItem = new MenuItem("Exit"));
        menuBar.add(fileMenu);
        //Menu Edit
        Menu editMenu = new Menu("Edit");
        editMenu.add(cutMenuItem = new MenuItem("Cut"));
        editMenu.add(copyMenuItem = new MenuItem("Copy"));
        editMenu.add(pasteMenuItem = new MenuItem("Paste"));
        editMenu.add(deleteMenuItem = new MenuItem("Delete"));
        editMenu.addSeparator();
        editMenu.add(boldMenuItem = new MenuItem("Bold"));
        editMenu.add(italicMenuItem = new MenuItem("Italic"));
        editMenu.add(underlineMenuItem = new MenuItem("Underline"));
        editMenu.addSeparator();
        editMenu.add(boxMenuItem = new CheckboxMenuItem("Automatische Terugloop",false));
        editMenu.add(selectallMenuItem = new MenuItem("Select All"));
        menuBar.add(editMenu);
        //Menu Help
        Menu helpMenu  = new Menu("Help");
        helpMenu.add(helpMenuItem = new MenuItem("Help"));
        helpMenu.addSeparator();
        helpMenu.add(aboutMenuItem = new MenuItem("About"));
        menuBar.add(helpMenu);
        setMenuBar(menuBar);


        // assignments als parameter (expressie ) gebruiken
        // is niet mooi -> aparte assignments

        Button sendButton   = new Button("Send");
        Button resetButton     = new Button("reset");
        Button boldButton   = new Button("Bold");
        Button italicButton    = new Button("Italic");
        Button underlineButton = new Button("Underline");
        Button clearmarkupButton = new Button("Clear Markup");
        Button makehtmlButton  = new Button("Make HTML");
        

        closeAction = new CloseAction(window);

        //ActionListeners
        //Buttons
        sendButton.addActionListener(new SendAction());
        resetButton.addActionListener(new ResetAction());
        boldButton.addActionListener(new BoldAction());
        italicButton.addActionListener(new ItalicAction());
        underlineButton.addActionListener(new UnderlineAction());
        clearmarkupButton.addActionListener(new ClearMarkupAction());
        makehtmlButton.addActionListener(new MakehtmlAction());
        //File Menu
        sendMenuItem.addActionListener(new SendAction());
        resetMenuItem.addActionListener(new ResetAction());
        exitMenuItem.addActionListener(new ExitAction());
        //Edit Menu
        cutMenuItem.addActionListener(new CutAction());
        copyMenuItem.addActionListener(new CopyAction());
        pasteMenuItem.addActionListener(new PasteAction());
        deleteMenuItem.addActionListener(new DeleteAction());
        boldMenuItem.addActionListener(new BoldAction());
        italicMenuItem.addActionListener(new ItalicAction());
        underlineMenuItem.addActionListener(new UnderlineAction());
        boxMenuItem.addItemListener(new BoxAction());
        selectallMenuItem.addActionListener(new SelectAllAction());
        //Help Menu
        helpMenuItem.addActionListener(new HelpAction());
        aboutMenuItem.addActionListener(new AboutAction());
        //File List
        


        Panel p = new Panel();
        p.add(sendButton);
        p.add(resetButton);
        add(BorderLayout.SOUTH, p);

        Panel q = new Panel(new StackLayout(3));
        q.add(new JLabel("Markup"));
        q.add(new JLabel("-----------"));
        q.add(boldButton);
        q.add(italicButton);
        q.add(underlineButton);
        q.add(clearmarkupButton);
        q.add(makehtmlButton);
        add(BorderLayout.EAST, q);

       Panel r = new Panel(new StackLayout(3));
         List filelist = new List(14, false);
         filelist.add("test1");
         filelist.add("test2");
         r.add(filelist);
       add(BorderLayout.WEST, r);
       filelist.select(0);
       filelist.addActionListener(new FilelistAction());
       //DIT WERKT WEL!!
       System.out.println(filelist.getSelectedItem());


        textField = new TextArea(30,70);
        add(BorderLayout.CENTER, textField);

        setBackground(Color.lightGray);
         setSize(600,400);

         //Venster positioneren
         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = getSize();
        if (frameSize.height > screenSize.height){
          frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width){
          frameSize.width = screenSize.width;
        }
        setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 4);
         //EO Venster positioneren

         setVisible(true);


    addWindowListener(new WindowAdapter()
    {
      public void windowClosing(WindowEvent e)
      {
        close();
      }
    });

    }


     public void actionPerformed(ActionEvent e){}
     private void close(){
       System.exit(0);
     }



    public CloseAction getCloseAction(){
        return closeAction;
    }

    // liever aparte ActionListeners dan gevalsonderscheid in 1 ActionListener

    class CloseAction extends WindowAdapter implements ActionListener{

        private Window window;

        public CloseAction(Window window){
            super();
            this.window = window;
        }

        public void windowClosing(WindowEvent e){
            window.setVisible(false); System.exit(0);
        }

        public void actionPerformed(ActionEvent event){
            window.setVisible(false); System.exit(0);
        }
    }


     //********************************************
     //  SPECIAL ACTION CLASSES!!!      //
     //********************************************

    class FilelistAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
              //DIT WERKT NIET!! NULPOINTER EXCEPTION (??)
              System.out.println(filelist.getSelectedItem());


        }
    }


     //SOUTH PANEL
    class SendAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            new SentMail();
        }
    }

    class ResetAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            textField.setText("");
        }
    }

    class ExitAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           System.exit(0);
        }
    }

//HELP-BAR OPTIONS
    class HelpAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           new Help();
        }
    }

    class AboutAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           System.out.println("about");
           new About();
        }
    }




//EDIT-BAR OPTIONS
    class CutAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           copy = textField.getSelectedText();
           textField.replaceRange("",begin,end);
        }
    }

    class CopyAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           copy = textField.getSelectedText();
        }
    }

    class PasteAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.replaceRange(copy,begin,end);
        }
    }

    class DeleteAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.replaceRange("",begin,end);
        }
    }

    class BoldAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.insert("</B>",end);
           textField.insert("<B>",begin);
        }
    }

    class ItalicAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.insert("</I>",end);
           textField.insert("<I>",begin);
        }
    }

    class UnderlineAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           int begin = textField.getSelectionStart();
           int end   = textField.getSelectionEnd();
           textField.insert("</U>",end);
           textField.insert("<U>",begin);
         }
    }

    class ClearMarkupAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
           String text = textField.getText();
           for(int i=0;i<Array.getLength(markuplist);i++){
             text = MiscFunctions.replace(text,markuplist[i],"");
           }
           text = MiscFunctions.replace(text,"<BR>","\n");
           text = MiscFunctions.replace(text,"&nbsp;"," ");
           textField.setText(text);
       }
    }

    class MakehtmlAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            String text = textField.getText();
            text = MiscFunctions.replace(text,"\n","<BR>");
            text = MiscFunctions.replace(text,"  ","&nbsp;&nbsp;");
            textField.setText(text);
        }
    }

    class BoxAction implements ItemListener{
        public void itemStateChanged(ItemEvent event){
            boxMenuItem.setState(false);
            new Help();
        }
    }

    class SelectAllAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            textField.selectAll();
        }
    }
}

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
De System.out vindt pas plaats als er ook daadwerkelijk een aktie is... Dat gebeurt dus niet als je de ActionListener aanmaakt. Controleer maar eens of er at run-time dan nog wel steeds een item is geselecteerd. Dat zou je sowieso altijd moeten doen (ipv er zomaar vanuit gaan dat er iets is geselecteerd).

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Dit is geen JBuilder gegeneerde code:

vb:
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
private ConnectDialog(Frame frame, String title, boolean modal)
    {
        super(frame, title, modal);
        
        try
        {
            jbInit();
            pack();
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    
    }
    
    private void jbInit() throws Exception
    {
    
        jLabel5.setPreferredSize(new Dimension(120, 24));
        jLabel5.setText("URL Helpfile");
        labelPanel.setLayout(borderLayout3);
        labelPanel.setBorder(border1);
        jLabel6.setPreferredSize(new Dimension(120, 24));
        jPanel2.setLayout(borderLayout5);
        okButton.setPreferredSize(new Dimension(100, 24));
        okButton.setText("Ok");
        okButton.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        okButton_actionPerformed(e);
                    }
                });
        jPanel6.setLayout(borderLayout6);
        jPanel6.setBorder(border4);
}

altijd een jbInit en op deze manier de actionListeners geimplementeerd.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Dit is geen JBuilder gegeneerde code
Nee, maar daarom is het nog wel een zooitje ;) .

Uit de foutmelding bleek dat het in JBuilder wordt gerund door middel van reflectie, daarom kreeg je die InvocationTargetException :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

aaaargggh... post weg :( had nog wel zo`n goed verhaal over dat hij actions moest gebruiken ipv actionlisteners te gebruiken. (jaja.. actions hebben ook actionlisteners :) )

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: aaaargggh... post weg :(
Zeker weer Opera? :o . Volg deze link voor een echte browser. ;) .
had nog wel zo`n goed verhaal over dat hij actions moest gebruiken ipv actionlisteners te gebruiken. (jaja.. actions hebben ook actionlisteners :) )
Hehe ;) . Hoe wil je die in AWT nuttig gaan gebruiken?

Had ik je trouwens al weleens m'n Controller idee laten zien?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package org.pandoramix.gui.controller;

import javax.swing.Action;

/**
 * A Controller is a collection of Actions.
 * Actions can be retrieved by an identifier.
 */
public interface Controller
{
    /**
     * Returns the Action associated with this identifier.
     *
     * @param identifier identifier whose associated value is to be returned.
     * @returns the Action associated with this identifier.
     */
    public Action getAction(String identifier);
}

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1