Hallo zusammen,
ich versuche gerade zu lernen wie man mit Java programmiert und hab versucht mithilfe von Eclipse und einem Windowbuilder ein kleines übungsprogramm zusammenzustellen das die Fläche eines Kreises berechnet. Mein Problem ist das ich nicht in der Lage bin die Daten des Jtextfields für den ActionListener bereitzustellen und das Ergebniss in ein JLabel zu packen.
Hier das Window das Eclipse relativ automatisch erstellt hat:
Hier ist der ActionListener. Ich hab versucht die Variablen aus dem Frame mit "Extends" für den Actionlistener benutzbar zu machen. Komischerweise erkennt Eclipse, dass radius ein JTextfield ist, aber nicht dass resultlabel das Ergebniss anzeigen soll.
Dann noch die Rechnungs Klasse:
Ich weis das Programm ist etwas umständlich, aber ich versuche mich mit den Fenstern, ActionListenern und Klassen vertraut zu machen. Ich hoffe ihr könnt mir helfen.
Vielen dank im voraus,
dk101
ich versuche gerade zu lernen wie man mit Java programmiert und hab versucht mithilfe von Eclipse und einem Windowbuilder ein kleines übungsprogramm zusammenzustellen das die Fläche eines Kreises berechnet. Mein Problem ist das ich nicht in der Lage bin die Daten des Jtextfields für den ActionListener bereitzustellen und das Ergebniss in ein JLabel zu packen.
Hier das Window das Eclipse relativ automatisch erstellt hat:
Java:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
@SuppressWarnings({ "unused", "serial" })
public class mainFrame extends JFrame {
private JPanel contentPane;
protected JTextField radius;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
mainFrame frame = new mainFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public mainFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
radius = new JTextField();
radius.setText("Insert Radius");
radius.setBounds(116, 13, 116, 22);
contentPane.add(radius);
radius.setColumns(10);
JButton calculate = new JButton("Calculate");
calculate.setBounds(116, 48, 97, 25);
contentPane.add(calculate);
JLabel resultlabel = new JLabel("");
resultlabel.setBounds(126, 107, 56, 16);
contentPane.add(resultlabel);
calculate.addActionListener(new flaeche());
}
}
Hier ist der ActionListener. Ich hab versucht die Variablen aus dem Frame mit "Extends" für den Actionlistener benutzbar zu machen. Komischerweise erkennt Eclipse, dass radius ein JTextfield ist, aber nicht dass resultlabel das Ergebniss anzeigen soll.
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@SuppressWarnings("serial")
public class flaeche extends mainFrame implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
rechnung result = new rechnung ();
double r = Double.parseDouble(radius.getText());
String text = String.valueOf(result.calcErgebnis(r));
resultlabel.setText(text);
}
}
Dann noch die Rechnungs Klasse:
Java:
@SuppressWarnings("serial")
public class rechnung extends mainFrame {
private double ergebnis;
public double calcErgebnis(double r){
ergebnis = r*r*Math.PI;
return ergebnis;
}
}
Ich weis das Programm ist etwas umständlich, aber ich versuche mich mit den Fenstern, ActionListenern und Klassen vertraut zu machen. Ich hoffe ihr könnt mir helfen.
Vielen dank im voraus,
dk101