import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; /** * Dieses Programm zeigt ein einfaches Fenster mit zwei Textfeldern an, in die * jeweils eine Zahl eingegeben werden kann. Nachdem der Summe-Button gedrückt * wurde, wird die Summe der beiden Zahlen im Ausgabe-Bereich ausgegeben. * Nachdem der Produkt-Button gedrückt wurde, wird das Produkt der beiden Zahlen * im Ausgabe-Bereich ausgegeben. * * @author Annabelle Klarl * */ public class BerechnungsFrameGridLayoutGruppe extends JFrame implements ActionListener { /** * Dieses Programmstück startet das Programm. * * @param args */ public static void main(String[] args) { BerechnungsFrameGridLayoutGruppe berechnung = new BerechnungsFrameGridLayoutGruppe(); berechnung.setVisible(true); } private JLabel zahl1EingabeLabel; private JTextField zahl1EingabeFeld; private JLabel zahl2EingabeLabel; private JTextField zahl2EingabeFeld; private JButton summeButton; private JButton produktButton; private JTextArea ausgabeBereich; /** * In diesem Programmstück wird das Fenster erzeugt. Auf dem Fenster sind * später zwei Textfelder zu sehen, in denen jeweils nach einer Zahl gefragt * wird. Außerdem gibt es einen Summe-Button und einen Produkt-Button, der * die Berechnung der Summe bzw. des Produkts der beiden Zahlen startet. Die * Summe bzw. das Produkt werden in einem Ausgabe-Bereich angezeigt. */ public BerechnungsFrameGridLayoutGruppe() { /* In der Kopfleiste des Fenster steht "Berechnung" */ this.setTitle("Berechnung"); /* Das Fenster ist 350 Pixel breit und 150 Pixel hoch. */ this.setSize(350, 150); /* Initialisierung aller Attribute */ this.zahl1EingabeLabel = new JLabel("1. Zahl:"); this.zahl1EingabeFeld = new JTextField(25); this.zahl2EingabeLabel = new JLabel("2. Zahl:"); this.zahl2EingabeFeld = new JTextField(25); this.summeButton = new JButton("Summe"); this.produktButton = new JButton("Produkt"); this.ausgabeBereich = new JTextArea(3, 33); JPanel eingabePanel1 = new JPanel(); eingabePanel1.add(this.zahl1EingabeLabel); eingabePanel1.add(this.zahl1EingabeFeld); JPanel eingabePanel2 = new JPanel(); eingabePanel2.add(this.zahl2EingabeLabel); eingabePanel2.add(this.zahl2EingabeFeld); JPanel buttonPanel = new JPanel(); buttonPanel.add(this.summeButton); buttonPanel.add(this.produktButton); /* * Der ContentPane ist der Ausschnitt des Fensters, auf dem Widgets d.h. * Interaktionselemente (wie ein Textfeld oder ein Button) platziert * werden können. */ Container contentPane = this.getContentPane(); contentPane.setLayout(new GridLayout(4, 1)); /* Hier werden alle Interaktionselemente platziert */ contentPane.add(eingabePanel1); contentPane.add(eingabePanel2); contentPane.add(buttonPanel); contentPane.add(this.ausgabeBereich); /* * Hier wird dieser BerechnungsFrame als Listener für * Knopfdruckereignisse bei jedem der zwei Buttons registriert. */ this.summeButton.addActionListener(this); this.produktButton.addActionListener(this); /* * Wird das Fenster geschlossen (d.h. auf X gedrückt), wird mit Hilfe * dieser Programmzeile auch unser Programm ordnungsgemäß beendet. */ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } /** * Dieses Programmstück wird immer dann ausgeführt, wenn ein Benutzer auf * einen Button drückt. */ @Override public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == this.summeButton) { this.summiere(); } else if (source == this.produktButton) { this.multipliziere(); } } /** * In diesem Programmstück werden die Zahlen in den Feldern zahl1EingabeFeld * und zahl2EingabeFeld als Strings gelesen. Beide Strings werden in Zahlen * (int) konvertiert, anschließend addiert und die Summe ausgegeben. */ private void summiere() { String zahl1AlsString = this.zahl1EingabeFeld.getText(); int zahl1 = Integer.parseInt(zahl1AlsString); String zahl2AlsString = this.zahl2EingabeFeld.getText(); int zahl2 = Integer.parseInt(zahl2AlsString); int summe = zahl1 + zahl2; this.ausgabeBereich.setText("Die Summe ist " + summe + "."); } /** * In diesem Programmstück werden die Zahlen in den Feldern zahl1EingabeFeld * und zahl2EingabeFeld als Strings gelesen. Beide Strings werden in Zahlen * (int) konvertiert, anschließend multipliziert und das Produkt ausgegeben. */ private void multipliziere() { String zahl1AlsString = this.zahl1EingabeFeld.getText(); int zahl1 = Integer.parseInt(zahl1AlsString); String zahl2AlsString = this.zahl2EingabeFeld.getText(); int zahl2 = Integer.parseInt(zahl2AlsString); int produkt = zahl1 * zahl2; this.ausgabeBereich.setText("Das Produkt ist " + produkt + "."); } }