Hi,
habe das Problem, das mein Menü wenn es aufklappt hinter den Layouts ist.
Main Klasse
An was liegt das?
Bin am verzweifeln.
Danke
habe das Problem, das mein Menü wenn es aufklappt hinter den Layouts ist.
Code:
package de.meinrechener;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Hauptfenster extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
// Instanzvariablen
private Panel eingabePanel, operatorenPanel, ergebnisPanel;
private TextField zahl1, zahl2;
private Button plus, minus, multi, divi;
private Label ergebnis;
private JMenuBar menueLeiste = new JMenuBar();
private JMenu menuDatei = new JMenu("Datei");
private JMenu menuBearbeiten = new JMenu ("Bearbeiten");
private JMenuItem itemOpen = new JMenuItem ("Öffnen...");
private JMenuItem itemClose = new JMenuItem ("Schliessen");
private JMenuItem itemEnd = new JMenuItem ("Beenden");
// Konstruktor
public Hauptfenster() {
super("Rechner");
menuDatei.add(itemOpen);
menuDatei.add(itemClose);
menuDatei.addSeparator();
menuDatei.add(itemEnd);
menueLeiste.add(menuDatei);
menueLeiste.add(menuBearbeiten);
this.setJMenuBar(menueLeiste);
this.addWindowListener (new WindowAdapter() {
public void windowClosing (WindowEvent e) {
System.exit(0);
}
});
// Layoutmanager für das Hauptfenster
this.setLayout(new GridLayout(4, 1));
// Aufbau des Eingabe-Panels
eingabePanel = new Panel();
eingabePanel.setLayout(new GridLayout(2, 1, 10, 10));
zahl1 = new TextField("Zahl 1");
zahl2 = new TextField("Zahl 2");
eingabePanel.add(zahl1);
eingabePanel.add(zahl2);
// Aufbau des Operatoren-Panels
operatorenPanel = new Panel();
operatorenPanel.setLayout(new FlowLayout());
plus = new Button("+");
minus = new Button("-");
multi = new Button("*");
divi = new Button("/");
operatorenPanel.add(plus);
operatorenPanel.add(minus);
operatorenPanel.add(multi);
operatorenPanel.add(divi);
// Events für die Knöpfe
plus.addActionListener(new KnopfAktion());
minus.addActionListener(new KnopfAktion());
multi.addActionListener(new KnopfAktion());
divi.addActionListener(new KnopfAktion());
// Aufbau des Ergebnis-Panels
ergebnisPanel = new Panel();
ergebnis = new Label("Bitte wählen!");
ergebnisPanel.add(ergebnis);
// Zusammensetzen der Panels im Container
this.add(eingabePanel);
this.add(operatorenPanel);
this.add(ergebnisPanel);
// Event-Handling für`s Hauptfenster
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
// Event-Handling für die Berechnung
class KnopfAktion implements ActionListener {
public void actionPerformed(ActionEvent e) {
// Rufe für alle Knöpfe die gleiche Funktion auf
berechnung(e);
}
}
private void berechnung(ActionEvent e) {
// Definition eines Ergebnisses
double erg = 0.0d;
// Umwandlung der Strings in Double
double z1 = Double.parseDouble(zahl1.getText());
double z2 = Double.parseDouble(zahl2.getText());
// Welcher Knopf wurde gedrückt
// Berechnen
if (e.getActionCommand() == plus.getLabel()) {
// Addition
erg = z1 + z2;
}
if (e.getActionCommand() == minus.getLabel()) {
// Subtraktion
erg = z1 - z2;
}
if (e.getActionCommand() == multi.getLabel()) {
// Multiplikation
erg = z1 * z2;
}
if (e.getActionCommand() == divi.getLabel()) {
// Division
erg = z1 / z2;
}
// Ergebnis ausgeben
ergebnis.setText(String.valueOf(erg));
}
}
Main Klasse
Code:
package de.meinrechener;
public class MiniRechner {
public static void main(String[] args) {
Hauptfenster fenster = new Hauptfenster();
fenster.pack();
fenster.setVisible( true );
}
}
An was liegt das?
Bin am verzweifeln.
Danke