Hey Community,
ich muss als Hausaufgabe einen Taschenrechner programmieren. Nur leider verzweifel ich daran.
Die erste Eingabe der Zahl funktioniert.
Die Zweite Zahl schaffe ich ja auch noch einzugeben.
Die Rechenoperation wird durch ein Kombinationsfeld ausgewählt was ja auch klappt.
Die Rechnung wird auch in Eclipse durchgeführt. Ich sehe das Ergebnis welches auch richtig ist.
Ich schaffe es nur nicht das Ergebnis ebenfals im SWING-Fenster mit anzeigen zu lassen.
Könnt ihr mir da helfen?
Hier mal mein code!
Die main Methode!
Und der rest!
ich muss als Hausaufgabe einen Taschenrechner programmieren. Nur leider verzweifel ich daran.
Die erste Eingabe der Zahl funktioniert.
Die Zweite Zahl schaffe ich ja auch noch einzugeben.
Die Rechenoperation wird durch ein Kombinationsfeld ausgewählt was ja auch klappt.
Die Rechnung wird auch in Eclipse durchgeführt. Ich sehe das Ergebnis welches auch richtig ist.
Ich schaffe es nur nicht das Ergebnis ebenfals im SWING-Fenster mit anzeigen zu lassen.
Könnt ihr mir da helfen?
Hier mal mein code!
Die main Methode!
Code:
package taschenrechner;
public class rechnermain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new rechnergui("Taschenrechner V2");
}
}
Und der rest!
Code:
package taschenrechner;
//import java.awt.BorderLayout;
//import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//import java.awt.event.ItemListener;
import java.text.DecimalFormat;
//import java.awt.Container;
//import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
//import javax.swing.JPanel;
//import javax.swing.JRadioButton;
//import javax.swing.border.TitledBorder;
public class rechnergui extends JFrame{
//automatisch über Eclipse eingefügt
private static final long serialVersionUID = 4668009235734676602L;
private String[] rechenauswahl = {"addition", "subtraktion", "division", "multiplikation"};
private JFormattedTextField eingabe1, eingabe2, ausgabe2;
private JButton schaltflaecheBeenden;
private JLabel ausgabe;
private JComboBox auswahl;
private int ergebnis;
class MeinListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object ausloeser = e.getSource();
if (ausloeser instanceof JComboBox) {
int zahl1, zahl2; //ergebnis = 0;
boolean fehlerFlag = false;
/* if (eingabe1.getText().isEmpty()) {
zahl1 = 0;
eingabe1.setText("0");
}
else
zahl1 = Integer.parseInt(eingabe1.getText());
if (eingabe2.getText().isEmpty()) {
zahl2 = 0;
eingabe2.setText("0");
}
else
zahl2 = Integer.parseInt(eingabe2.getText()); */
zahl1 = Integer.parseInt(eingabe1.getText());
zahl2 = Integer.parseInt(eingabe2.getText());
if (auswahl.getSelectedItem().toString().equals("addition"))
ergebnis = zahl1 + zahl2;
if (auswahl.getSelectedItem().toString().equals("subtraktion"))
ergebnis = zahl1 - zahl2;
if (auswahl.getSelectedItem().toString().equals("multiplikation"))
ergebnis = zahl1 * zahl2;
if (auswahl.getSelectedItem().toString().equals("division")) {
if (zahl2 != 0)
ergebnis = zahl1 / zahl2;
else
fehlerFlag = true;
}
//wenn es keine Probleme gegeben hat, liefern wir das Ergebnis zurück
if (fehlerFlag == false) {
//das Ergebnis zurückgeben
System.out.println(Integer.toString(ergebnis));
}
else
System.out.println("Nicht definiert");
}
if (ausloeser instanceof JButton){
if (e.getActionCommand().equals("Beenden"))
System.exit(0);
}
}
}
public rechnergui(String titel) {
super(titel);
auswahl = new JComboBox(rechenauswahl);
auswahl.setEnabled(true);
schaltflaecheBeenden = new JButton("Beenden");
eingabe1 = new JFormattedTextField(new DecimalFormat("#"));
eingabe2 = new JFormattedTextField(new DecimalFormat("#"));
ausgabe2 = new JFormattedTextField(ergebnis);
ausgabe = new JLabel("");
ausgabe.setFont(new Font("Arial", Font.PLAIN,14));
setLayout(new GridLayout(0,4,10,10));
add(eingabe1);
add(eingabe2);
add(auswahl);
add(ausgabe);
add(ausgabe2);
add(schaltflaecheBeenden);
MeinListener listener = new MeinListener();
schaltflaecheBeenden.addActionListener(listener);
auswahl.addActionListener(listener);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
setResizable(false);
}
}
Ich habe versucht das ergebnis mit JFormattedTextField "ausgabe2" auszugeben.
Vielen Dank !