Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class CAddierer extends JFrame
{
private final JTextField mSummand1 = new JTextField(10);
private final JTextField mSummand2 = new JTextField(10);
private final JTextField mResult = new JTextField(20);
private JButton mButton = new JButton("=");
public CAddierer()
{
super("Addierer");
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(mSummand1);
c.add(new JLabel("+"));
c.add(mSummand2);
c.add(mButton);
c.add(mResult);
mResult.setEditable(false);
mButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
mResult.setText("");
int s1 = 0, s2 = 0;
s1 = Integer.parseInt(mSummand1.getText());
s2 = Integer.parseInt(mSummand2.getText());
mResult.setText((s1 + s2) + "");
}
);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
public static void main(String[]args)
{
CAddierer addierer = new CAddierer();
addierer.setVisible(true);
addierer.setSize(400, 200);
}
}
das wäre meines erachtens eine anonyme klasse, der actionlistener wird quasi direkt mit seiner entsprechenden behandlung übergeben. ich glaub das die klassenattribute dazu final sein müssen, das kannst eventuell per IDE noch testen ob sie es sein müssen oder nicht.
eine statische variante:
Java:
public class Foo {
public static int addValues(int first, int second) {
return first+second;
}
public static String addValues(String first, String second) throws NumberFormatException {
return addValues(Integer.parseInt(first), Interger.parseInt(second));
}
}
für einer statisch Klasse reichen diese Methoden eigentlich aus, der Ereignishandler in der anderen Klasse müsste dann lediglich folgendes aufrufen:
ja gut ist mir auch grad aufgefallen .. da würde ja nur eine static deklarierte innere klasse "sinn" machen .. aber macht sie denn static sinn, wenn der aufruf aus der oberklasse selbst erfolgt?
das spielt doch nur eine rolle, wenn ich eine innere klasse von ausserhalb der umgebenden klasse benutzen möchte, oder spielt es vielleicht bei einem anonymen listener alles rein?
das könnte ich mir am ehesten vorstellen.
Zur anonymen Variante: Ist so richtig, allerdings kann die auf alle attribute (inklusive private) zugreifen. Was nicht geht ist der Zugriff per this, der referenziert auf die anonyme Behandler Klasse.
An den Themenstarter: Da wir eigentlich keine Hausaufgaben machen, schau dir mal den Link an. Dort ist alles erklärt.