Hallo Leute,
ich habe 2 Frames, von dem ersten Frame wird per Button ein zweites Frame geöffnet. Anschließend soll von dem zweiten Frame ein berechneter Wert an das erste Frame zum weiterrechnen übergeben werden.
Soweit sogut, um den Wert zu übergeben muss ich doch von der zweiten Klasse den Wert mittels extends an die erste übergeben oder habe ich das falsch verstanden?
Irgendwie bekomme ich das mit der Vererbung nicht hin.
Mein aktueller Lösungsansatz:
Hauptfenster.java
Flaeche.java
ich habe 2 Frames, von dem ersten Frame wird per Button ein zweites Frame geöffnet. Anschließend soll von dem zweiten Frame ein berechneter Wert an das erste Frame zum weiterrechnen übergeben werden.
Soweit sogut, um den Wert zu übergeben muss ich doch von der zweiten Klasse den Wert mittels extends an die erste übergeben oder habe ich das falsch verstanden?
Irgendwie bekomme ich das mit der Vererbung nicht hin.
Mein aktueller Lösungsansatz:
Hauptfenster.java
Java:
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Hauptfenster extends JFrame {
private JPanel contentPane;
private JTextField texthoehe;
private JTextField textflaeche;
private JTextField textvolumen;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Hauptfenster frame = new Hauptfenster();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Hauptfenster() {
setTitle("Volumen");
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);
JLabel lblHoehe = new JLabel("Hoehe");
lblHoehe.setBounds(91, 14, 36, 14);
contentPane.add(lblHoehe);
texthoehe = new JTextField();
texthoehe.setBounds(149, 11, 86, 20);
contentPane.add(texthoehe);
texthoehe.setColumns(10);
JButton btnNeuesFenster = new JButton("Flaechenberechnung");
btnNeuesFenster.setBounds(245, 35, 156, 23);
btnNeuesFenster.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
new Flaeche().setVisible(true);
}
});
contentPane.add(btnNeuesFenster);
JLabel lblFlaeche = new JLabel("Flaeche");
lblFlaeche.setBounds(91, 39, 46, 14);
contentPane.add(lblFlaeche);
textflaeche = new JTextField();
textflaeche.setEditable(false);
textflaeche.setBounds(149, 36, 86, 20);
contentPane.add(textflaeche);
textflaeche.setColumns(10);
JLabel lblErgebnis = new JLabel("Volumen");
lblErgebnis.setBounds(91, 90, 58, 14);
contentPane.add(lblErgebnis);
textvolumen = new JTextField();
textvolumen.setBounds(149, 87, 86, 20);
contentPane.add(textvolumen);
textvolumen.setColumns(10);
JButton btnBerechnen = new JButton("Berechnen");
btnBerechnen.setBounds(245, 86, 156, 23);
contentPane.add(btnBerechnen);
}
}
Flaeche.java
Java:
import java.awt.EventQueue;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Flaeche extends JFrame {
private JPanel contentPane;
private JTextField txtlaenge;
private JTextField txtbreite;
private JTextField txterg;
private String uebergabe;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Flaeche frame = new Flaeche();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Flaeche() {
setTitle("Fl\u00E4chenberechnung Rechteck");
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);
JLabel lblLaenge = new JLabel("Laenge");
lblLaenge.setBounds(23, 32, 46, 14);
contentPane.add(lblLaenge);
txtlaenge = new JTextField();
txtlaenge.setBounds(91, 29, 86, 20);
contentPane.add(txtlaenge);
txtlaenge.setColumns(10);
JLabel lblBreite = new JLabel("Breite");
lblBreite.setBounds(23, 57, 46, 14);
contentPane.add(lblBreite);
txtbreite = new JTextField();
txtbreite.setBounds(91, 54, 86, 20);
contentPane.add(txtbreite);
txtbreite.setColumns(10);
JLabel lblErgebnis = new JLabel("Ergebnis");
lblErgebnis.setBounds(23, 82, 55, 14);
contentPane.add(lblErgebnis);
txterg = new JTextField();
txterg.setEditable(false);
txterg.setBounds(91, 79, 86, 20);
contentPane.add(txterg);
txterg.setColumns(10);
JButton btnBerechnen = new JButton("Berechnen");
btnBerechnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
///Umwandeln Komma zu Punkt
String laenge = txtlaenge.getText();
laenge = laenge.replace(',', '.');
double dblaenge = Double.parseDouble(laenge);
String breite = txtbreite.getText();
breite = breite.replace(',', '.');
double dbbreite = Double.parseDouble(breite);
/// Berechnung der Werte
String Ergebnis = String.format("%.2f", (dbbreite * dblaenge));
txterg.setText(Ergebnis);
}
catch (NumberFormatException ex) {
}
}
});
btnBerechnen.setBounds(10, 107, 167, 23);
contentPane.add(btnBerechnen);
JButton btnUebernehmen = new JButton("Uebernehmen");
btnUebernehmen.addActionListener((ActionListener) new Uebergabe());
/*btnUebernehmen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
}); */
btnUebernehmen.setBounds(10, 141, 167, 23);
contentPane.add(btnUebernehmen);
}
public class Uebergabe extends Hauptfenster{
@Override
public void actionPerformed(ActionEvent ae) {
setVisible(false);
System.out.println("läuft");
}
}
}
Zuletzt bearbeitet von einem Moderator: