Hallo zusammen.
Ich bin zwar blutiger Anfänger, denke aber meine Frage ist in diesem Teil des Forums besser aufgehoben.
Ich habe mir von Sun's Tutorialseite folgendes Beispiel geholt um daran die Grundlagen von swing etwas kennenzulernen. (java hier: link)
Nun wollte ich das ganze in ein einfaches Programm umschreiben, welches zwei Zahlen einließt und die Summe anzeigt. Der Part mit dem Auslesen bereitet mir zwar Probleme, bzw muss ich mir das noch anschauen, deswegen findet ihr ihn im Quelltext unten im Kommentar, aber das ist nicht weswegen ich poste.
Mein Problem nun ist, das habe ich per Suche und FAQ schon gesehen, wohl gut bekannt.
Ich bekomme in der cmd den Fehler, dass meine Klasse nicht abstrakt ist und die abstrakte Methode actionPerformed nicht überschreibt.
Da ich weder aus den Posts schlau werde (hmm...Anfänger) noch verstehe, warum meine Kopie des Sun-Tutorials nicht funktioniert würde ich hier um Hilfe bitten.
Hier der Quelltext, wie gesagt bewusst nah an dem Beispiel, aber irgendwo ist der Wurm drin. (Das Beispiel von Sun wird ohne Probleme kompiliert.)
Meint
Danke im Vorraus,
kontur
Ich bin zwar blutiger Anfänger, denke aber meine Frage ist in diesem Teil des Forums besser aufgehoben.
Ich habe mir von Sun's Tutorialseite folgendes Beispiel geholt um daran die Grundlagen von swing etwas kennenzulernen. (java hier: link)
Nun wollte ich das ganze in ein einfaches Programm umschreiben, welches zwei Zahlen einließt und die Summe anzeigt. Der Part mit dem Auslesen bereitet mir zwar Probleme, bzw muss ich mir das noch anschauen, deswegen findet ihr ihn im Quelltext unten im Kommentar, aber das ist nicht weswegen ich poste.
Mein Problem nun ist, das habe ich per Suche und FAQ schon gesehen, wohl gut bekannt.
Ich bekomme in der cmd den Fehler, dass meine Klasse nicht abstrakt ist und die abstrakte Methode actionPerformed nicht überschreibt.
Da ich weder aus den Posts schlau werde (hmm...Anfänger) noch verstehe, warum meine Kopie des Sun-Tutorials nicht funktioniert würde ich hier um Hilfe bitten.
Hier der Quelltext, wie gesagt bewusst nah an dem Beispiel, aber irgendwo ist der Wurm drin. (Das Beispiel von Sun wird ohne Probleme kompiliert.)
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class KaksiLukuaSwing implements ActionListener {
//DECLARE components
JFrame calculatorFrame;
JPanel calculatorPanel;
JTextField figure1;
JTextField figure2;
JLabel resultSum;
JButton calculate;
//PUBLIC METHOD defining the components
public KaksiLukuaSwing() {
//create and set window
calculatorFrame = new JFrame("Calculate with two figures");
calculatorFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
calculatorFrame.setSize(new Dimension(400,50));
//create and set up the panel
calculatorPanel = new JPanel(new GridLayout(2,2));
//use a method that implements the components
addComponents();
//set the default button
calculatorFrame.getRootPane().setDefaultButton(calculate);
//add the panel to the window
calculatorFrame.getContentPane().add(calculatorPanel, BorderLayout.CENTER);
//display the window
calculatorFrame.pack();
calculatorFrame.setVisible(true);
} //end Calculator()
//PUBLIC METHOD implementing the components
private void addComponents(){
figure1 = new JTextField(5);
figure2 = new JTextField(5);
resultSum = new JLabel("Sum: ", SwingConstants.LEFT);
calculate = new JButton("Calculate");
//listen to events from the calculate button
calculate.addActionListener(this);
//put them to the container
calculatorPanel.add(figure1);
calculatorPanel.add(figure2);
calculatorPanel.add(resultSum);
calculatorPanel.add(calculate);
} //end actionPerformed()
//PUBLIC ACTIONPERFORMED
public void actionPerfomed(ActionEvent event){
// calculations are done here
// int sum = ((parseInt(figure1.getText())) + (parseInt(figure2.getText())));
resultSum.setText("test");
} //end addComponents()
//PUBLIC STATIC CREATE AND SHOW GUI
private static void setAndSetFrame(){
KaksiLukuaSwing myCalc = new KaksiLukuaSwing();
} //end setAndSetFrame()
//PUBLIC STATIC MAIN
public static void main(String[] args){
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
setAndSetFrame();
}
});
}
}
Meint
(FAQ), dass alle von mir benutzten Methoden überschrieben werden müssen, oder wie? Inwiefern erfüllt das mein Quelltext nicht?Es müssen alle Methoden eines implementierten Interfaces überschrieben werden, wenn die Klasse nicht abstrakt ist.
Danke im Vorraus,
kontur