hi ales
WOW, Vielen Dank! Das waren genau die Antworten, die ich
gesucht habe. Nur nochmal zum Verständnis: Wenn ich den
„Königsweg“ gehe und eine Controller-Klasse einsetze, dann
habe ich ja eine ActionPerformed-Methode zu implementieren, in
der ich entscheide, was ich tue. Soweit ich es gesehen habe,
gibt es ein Property, mit dem ich den Namen des Senders
bekomme. Das heißt dann aber auch, dass ich für jeden Button
etc. prüfen muss „if(Sender = „Button1“)… if(Sender =
„Button2“)…“.
Ich weiß nicht, aber bei Stringvergleichen sträuben sich mir
immer die Haare. Wenn ich jetzt den Namen umändere und nicht
daran denke, den Controller anzupassen, dann hat der Knopf
keine Funktion mehr.
also, stringvergleiche sind immer ungut. sind auch nicht notwendig. jeder event hat eine getSource-Methode, die jenes object zurückgibt, das den event erzeugt hat. du musst also die object-reference von deinem button mit der source des events vergleichen.
also z.b.:
jbOK = new JButton(…);
actionPerformed(ActionEvent e) {
if (e.getSource() == jbOK) {
…
}
}
du hast damit lediglich das problem, dass dein controller ja eine eigene klasse ist, der nun alle buttons der gui-klasse kennen muss. „sauber“ programmiert müssten die buttons in privaten feldern stehen. in diesem fall wird man eher auf package oder protected umsteigen müssen.
Gibt es da ein „Rezept“ wie man seine Actions benennt? Ich
würde jetzt den Namen des buttons bzw. des Steuerlementes
reinschreiben. Also z.B. btnOK, btnAbbruch etc.
es gibt sicher best practices über das benennen von gui-elementen, die in praktisch allen anwendungen vorkommen. ich bin aber kein gui-programmiere und kenne die nicht auswendig. müsste selber erst googeln - das kannst du auch 
grundsätzlich würde ich aber das benennen von variablen, methoden, actions etc. nicht zur wissenschaft machen. der grund, warum man statt den variablenname „a“, „b“ und „c“ die namen „name“, „vorname“, „titel“ verwendet, ist doch der, dass man später noch den eigenen code lesen kann (wobei später auch schon eine woche später sein kann). der bytecode, den der compiler liefert, ist gleich gross und schnell, egal was man nimmt. das selbe gilt gilt für methoden, klassen etc.
der name ist auf jeden fall ok, wenn:
- er gängigen namensschemata folgt (gross-kleinschreibung)
- auf den ersten blick offensichtlich ist, was damit gemeint ist
- alle variablen/methoden/klassen mit ähnlicher funktion ähnliche namen haben
- alle variablen/methoden mit der selben funktion in unterschiedlichen klassen den selben namen haben
auf diese weise wirst du auch bei umfangreicheren sw-projekten deinen code im griff haben - auch nach ein paar wochen noch.
lg
erwin