Wie erstelle ich für jeden Button einen eigenen Listener?



  • for (int j = 0; j < DAY_COUNT[month]; j++) {
                month = ((greg.get(Calendar.MONTH))+1);
                date = new String(j+1 + "." + month + "." + year);
                JButton b = new JButton(date);
                            b.addActionListener(new ActionListener(
                                        public void actionPerformed(ActionEvent e) {
                                            owner.date.setText(b.getText());
                                        }
                                                                                                        )
                                   );
                pane.add(b);
                            GregorianCalendar t = new GregorianCalendar();
                            t.setTime(new Date(date));
                            pane.add(new Label(""+getString(new String(""+t.get(Calendar.DAY_OF_WEEK)))));
            }   
        }
    

    Also ich will in der Schleife für jeden Button einen eigenen Listener erzeugen da sie alle quasi "annonym" sind. Und ich habe da was geschrieben was aber nicht klappt. Aber ich weis, dass das irgendwie so in der Art klappen müsste. Was mache ich falsch? Also der Fehler liegt eben in der/den Zeilen in denen ich einen Listener hinzufügen will. Danke!



  • compil-fehler ??



  • hi, so müßts gehen:

    b.addActionListener(new ActionListener()
                        {
                           public void actionPerformed(ActionEvent e) 
                           {
                               owner.date.setText(b.getText());
                           }
                        }
                        );
    

    also nach new actionlistener runde klammer auf und zu und dann die anonyme Klasse in geschweifte Klammern.. kannst aber auch ne normale oder lokale klasse verwenden.. ist etwas übersichtlicher



  • Danke crass!


Anmelden zum Antworten