Hallo,
in der schule programmieren wir gerade einen Taschenrechner mit BlueJ. Weil ich Spaß daran hatte, wollte ich mir aneignen wie man die passende GUI dazu baut.
Und zwar soll sich ein Fenster öffnen mit einer Menüleiste "Rechenart" und "Ende". Unten drunter steht erstmal eine Begrüßung evtl. mit sowas wie einem Datum-
Der Menüpunkt "Rechenart" soll wiederum "Addieren", "Subtrahieren" usw. enhalten.
Je nachdem, was man ausgewählt hat, soll sich das Ausgabe Fenster unter der Menüleiste ändern ... dort sollen zwei Felder sein, wo man zahlen eingeben kann und dann ein Button mit rechnen ... das Event ist, dass er daraufhin Rechnung + Lösung anzeigt.
Wie weit bin ich damit: Ich habe einen JFrame erstellt mit der entsprechenden Menüleiste (+Unterpunkte) und der Begrüßung ---> alles aus Tutorial abgeleitet , bin ein Java Einsteiger.
Problem: Ich habe keine Ahnung wie ich 1. den JMenuItem ein Event zuordne und wie ich es realisiere, dass man dann praktisch das neue Fenster (unter der Menüleiste) zum neu gestalten hat.
Ich habe es mit Tutorials versucht, aber jedes hat eine andere Methode und ich blicke es nicht so ganz. Daher hier mal mein Quellcode:
Das ist mein bisheriges Ergebnis.
Es wäre nett, wenn ihr mir
1. anhand eines kurzen Beispieles (am besten mit einem JFrame und nicht irgendwelchen komischen super Fenstern ... die manchmal bei sowas verwendet worden sind) zeigen könnt, wie man ein entsprechendes Event programmiert
2. Wie das Event aussehen muss, dass sich kein neues Fenster öffnet, sondern eben nur der Teil des JFrame sich ändert
3. Mir erklären könnt, warum man manchmal bei der Klasse sowas wie extends oder implements ... schreibt
4. Vlt. allgemein über den Quellcode schaut/Verbesserungsvorschläge habt, wie der Code besser/schneller geschrieben ist (nehme mal an, ich habe viele Sachen nicht optimal gelöst).
Vielen Dank für jede Hilfe!
Grüße Leon
in der schule programmieren wir gerade einen Taschenrechner mit BlueJ. Weil ich Spaß daran hatte, wollte ich mir aneignen wie man die passende GUI dazu baut.
Und zwar soll sich ein Fenster öffnen mit einer Menüleiste "Rechenart" und "Ende". Unten drunter steht erstmal eine Begrüßung evtl. mit sowas wie einem Datum-
Der Menüpunkt "Rechenart" soll wiederum "Addieren", "Subtrahieren" usw. enhalten.
Je nachdem, was man ausgewählt hat, soll sich das Ausgabe Fenster unter der Menüleiste ändern ... dort sollen zwei Felder sein, wo man zahlen eingeben kann und dann ein Button mit rechnen ... das Event ist, dass er daraufhin Rechnung + Lösung anzeigt.
Wie weit bin ich damit: Ich habe einen JFrame erstellt mit der entsprechenden Menüleiste (+Unterpunkte) und der Begrüßung ---> alles aus Tutorial abgeleitet , bin ein Java Einsteiger.
Problem: Ich habe keine Ahnung wie ich 1. den JMenuItem ein Event zuordne und wie ich es realisiere, dass man dann praktisch das neue Fenster (unter der Menüleiste) zum neu gestalten hat.
Ich habe es mit Tutorials versucht, aber jedes hat eine andere Methode und ich blicke es nicht so ganz. Daher hier mal mein Quellcode:
Java:
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.awt.event.*;
@SuppressWarnings("serial")
public abstract class Tr extends JFrame implements ActionListener
{
public static void main(String[] args)
{
JFrame meinFrame = new JFrame("Taschenrechner");
meinFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
meinFrame.setSize(450,300);
meinFrame.setLocation(50,50);
JMenuBar bar = new JMenuBar();
meinFrame.setJMenuBar(bar);
JMenu menu = new JMenu("Rechenart");
JMenuItem item1 = new JMenuItem ("Addieren");
menu.add(item1);
JMenuItem item2 = new JMenuItem ("Subtrahieren");
menu.add(item2);
JMenuItem item3 = new JMenuItem ("Multiplizieren");
menu.add(item3);
JMenuItem item4 = new JMenuItem ("Dividieren");
menu.add(item4);
JMenu menu1 = new JMenu("Ende");
bar.add(menu);
bar.add(menu1);
LocalDate jetzt = LocalDate.now();
DateTimeFormatter myformatter = DateTimeFormatter.ofPattern(" d. MMMM yyyy");
JLabel datum = new JLabel(" Vielen Dank für ihre Benutzung des Tr_1.0 am" + myformatter.format(jetzt), JLabel.CENTER);
JLabel anweisung = new JLabel("Bitte wählen sie im Menü die gewünschte Rechenart aus", JLabel.CENTER);
meinFrame.add(anweisung, BorderLayout.CENTER);
meinFrame.add(datum, BorderLayout.NORTH);
meinFrame.setJMenuBar(bar);
meinFrame.setVisible(true);
}
public abstract class DerHandler implements ActionListener
{
public void ActionPerformed (ActionEvent event) {
if (event.getSource() ==item1) {
}
else if (event.getSource()== item2 ) {
}
else if (event.getSource()== item2 ){
}
else if (event.getSource()== item2 ) {
}
}
}
}
Das ist mein bisheriges Ergebnis.
Es wäre nett, wenn ihr mir
1. anhand eines kurzen Beispieles (am besten mit einem JFrame und nicht irgendwelchen komischen super Fenstern ... die manchmal bei sowas verwendet worden sind) zeigen könnt, wie man ein entsprechendes Event programmiert
2. Wie das Event aussehen muss, dass sich kein neues Fenster öffnet, sondern eben nur der Teil des JFrame sich ändert
3. Mir erklären könnt, warum man manchmal bei der Klasse sowas wie extends oder implements ... schreibt
4. Vlt. allgemein über den Quellcode schaut/Verbesserungsvorschläge habt, wie der Code besser/schneller geschrieben ist (nehme mal an, ich habe viele Sachen nicht optimal gelöst).
Vielen Dank für jede Hilfe!
Grüße Leon