GUI in Taschenrechner integrieren (Java)?
import java.util.Scanner;
import javax.swing.JTextField;
public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
new GUI();
try {
System.out.println("Bitte geben Sie ihre Berechnung ein: ");
String eingabe = scanner.nextLine();
String[] teile = eingabe.split(" ");
double zahl1 = Double.parseDouble(teile[0]);
double zahl2 = Double.parseDouble(teile[2]);
char operator = teile[1].charAt(0);
System.out.println(taschenrechner(eingabe, zahl1, zahl2, operator));
} catch (NumberFormatException e) {
System.out.println("Bitte geben Sie einen gültigen Wert ein!");
} finally {
scanner.close();
}
}
static double taschenrechner (String eingabe, double zahl1, double zahl2, char operator) {
double ergebnis = 0.0;
if (operator == '/' && zahl2 == 0) {
throw new ArithmeticException("Das dividieren durch 0 ist nicht erlaubt!");
}
switch (operator) {
case '-': ergebnis = zahl1 - zahl2; break;
case '+': ergebnis = zahl1 + zahl2 ; break;
case '*': ergebnis = zahl1 * zahl2; break;
case '/': ergebnis = zahl1 / zahl2; break;
}
return ergebnis;
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class GUI extends App{
private JTextField textFieldZahl1;
private JTextField textFieldZahl2;
private JTextField textFieldOperator;
private JLabel labelErgebnis;
private JButton buttonBerechnen;
public GUI () {
JFrame frame = new JFrame("Taschenrechner");
frame.setLayout(new FlowLayout());
frame.setSize(500, 500);
frame.add(new JButton("+"));
frame.add(new JButton("-"));
frame.add(new JButton("*"));
frame.add(new JButton("/"));
frame.add(new JTextField(20));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Wie kann ich die GUI jetzt mit der Taschenrechner-Logik verknüpfen?
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Java, Code, Eclipse
Ordne den Buttons Action Listener zu. Die JTextField-Komponente wiederum hat eine setText-Methode.