Taschenrechner Funktion

Java20134

Bekanntes Mitglied
HI!

Ich habe angefangen einen Taschenrechner zu schreiben. Und will nun noch die Funktionen +,-,*,/ und den Punkt hinzufügen. Ich habe dabei schon angefangen den Quellcode zu schreiben und möchte jetzt gerne wissen, was ich noch machen muss.

Java:
double ergebnis;
double zahl1;
double zahl2; 
char operator;


public void Operationen(){
	if (operator == '-'){
		ergebnis = zahl1 - zahl2;
	}
	else 
		if (operator == '+'){
			ergebnis = zahl1 + zahl2; 
		}
	else 
		if (operator == '/'){
			ergebnis = zahl1 / zahl2; 
	}
	else 
		if (operator == '*'){
			ergebnis = zahl1 * zahl2; 
		}
	txt_ergebnis.setText("ergebnis");
	}
 
Zuletzt bearbeitet:

TheSorm

Bekanntes Mitglied
kommt drauf an was du amchen wilst an sich wenn du es als konsolen anwendung laufen lässt wäre am ende ein System.out.print ln(""+ergebnis);
 

TheSorm

Bekanntes Mitglied
Google ist dein bester Freund ;)

Java:
import java.util.*;

public class Calc {
   private Scanner scanner;
   
   public Calc() {
      scanner = new Scanner(System.in);

      do {
         System.out.println("\nBitte geben Sie Ihre Rechenaufgabe ein!\n");
         System.out.println("="+calc());
         System.out.print("\nEine weitere Aufgabe rechnen? (j/n) ");
      }
      while(scanner.next().equals("j"));
   }

   public static void main(String[] args) {
      new Calc();
   }
   
   private double calc() {
      try {
         double num1 = scanner.nextDouble();
         String operator = scanner.next();
         double num2 = scanner.nextDouble();
         
         if(operator.equals("+")) {
            return add(num1, num2);
         }
         else if(operator.equals("-")) {
            return sub(num1, num2);
         }
         else if(operator.equals("*")) {
            return mul(num1, num2);
         }
         else if(operator.equals("/")) {
            return div(num1, num2);
         }
      }
      catch(InputMismatchException e) {
         System.out.println("Geben Sie pro Zeile nur eine Zahl bzw. einen Operator ein!\nZwischen zwei Zahlen muss ein Operator eingeben werden.");
         System.exit(1);
      }
      
      return 0.0;
   }
   
   private double sub(double minuend, double subtrahend) {
      return minuend - subtrahend;
   }
   
   private double add(double summand1, double summand2) {
       return summand1 + summand2;
   }
   
   private double div(double dividend, double divisor) {
      return dividend / divisor;
   }

   private double mul(double factor1, double factor2) {
       return factor1 * factor2;
   }
}
 

Java20134

Bekanntes Mitglied
Ich habe einen Taschenrechner entwickelt der nur ein Textfeld besitzt und daher kann ich doch kein Scanner benutzen, oder? Was müsste ich anders machen, da es noch nicht bei mir funktioniert?
 

Java20134

Bekanntes Mitglied
Java:
//es werden alle Klassen des Paketes awt.color, ... importiert
import java.awt.Color;
import java.awt.Component;
import java.awt.Event;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.Ellipse2D;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.border.EmptyBorder;
import java.util.*;

//Bildschirm + frame (alles was da ist)+ Action Listener (reagiert auf die Aktionen)
public class CalculatorDialog extends JFrame implements ActionListener {
	private static final long serialVersionUID = -2328156892966442114L;
	private JPanel contentPane;
	private JTextField txt_ergebnis;
	private JButton btn_istgleich;
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					CalculatorDialog frame = new CalculatorDialog();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
		    
	   
	/**
	 * Create the frame.
	 * @return 
	 */
	public CalculatorDialog() {	
		//Fenster was man sieht
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 361, 366);
		setTitle("Taschenrechner");
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		getContentPane().setBackground(new Color(211, 211, 211));
		contentPane.setLayout(null);//Buttons + Ausgabefeld	
		txt_ergebnis = new JTextField();
		txt_ergebnis.setEditable(false);
		txt_ergebnis.setBounds(41, 30, 269, 33);
		txt_ergebnis.setText(""); 
		contentPane.add(txt_ergebnis);
		txt_ergebnis.setColumns(10);
							
		JButton btn_0 = new JButton("0");
		btn_0.setBounds(41, 295, 60, 23);
		contentPane.add(btn_0); 
		btn_0.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "0");
			}
		});
		
		JButton btn_1 = new JButton("1");
		btn_1.setBounds(41, 261, 60, 23);
		contentPane.add(btn_1);
		btn_1.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "1");
			}
		});
		
		JButton btn_2 = new JButton("2");
		btn_2.setBounds(111, 261, 60, 23);
		contentPane.add(btn_2);
		btn_2.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "2");
			}
		});
		
		JButton btn_3 = new JButton("3");
		btn_3.setBounds(181, 261, 60, 23);
		contentPane.add(btn_3);
		btn_3.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "3");
			}
		});
		
		JButton btn_4 = new JButton("4");
		btn_4.setBounds(41, 227, 60, 23);
		contentPane.add(btn_4);
		btn_4.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "4");
			}
		});
		
		JButton btn_5 = new JButton("5");
		btn_5.setBounds(111, 227, 60, 23);
		contentPane.add(btn_5);
		btn_5.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "5");
			}
		});
		
		JButton btn_6 = new JButton("6");
		btn_6.setBounds(181, 227, 60, 23);
		contentPane.add(btn_6);
		btn_6.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "6");
			}
		});
		
		JButton btn_7 = new JButton("7");
		btn_7.setBounds(41, 193, 60, 23);
		contentPane.add(btn_7);
		btn_7.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "7");
			}
		});
		
		JButton btn_8 = new JButton("8");
		btn_8.setBounds(111, 193, 60, 23);
		contentPane.add(btn_8);
		btn_8.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "8");
			}
		});
		
		JButton btn_9 = new JButton("9");
		btn_9.setBounds(181, 193, 60, 23);
		contentPane.add(btn_9);
		btn_9.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "9");
			}
		});
		
		JButton btn_pkt = new JButton(".");
		btn_pkt.setBounds(111, 295, 60, 23);
		contentPane.add(btn_pkt);
		btn_pkt.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ ".");
			}
		});
		
		JButton btn_ce = new JButton("CE");
		btn_ce.setBounds(251, 147, 60, 23);
		contentPane.add(btn_ce);
		btn_ce.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText().substring(0,txt_ergebnis.getText().length()-1));
			}
		});
		
		btn_istgleich = new JButton("=");
		btn_istgleich.setBounds(181, 295, 60, 23);
		contentPane.add(btn_istgleich);
		btn_istgleich.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "=");
			}
		});
		
		JButton btn_multiplikation = new JButton("*");
		btn_multiplikation.setBounds(251, 193, 60, 23);
		contentPane.add(btn_multiplikation);
		btn_multiplikation.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "*");
			}
		});
		
		JButton btn_division = new JButton("/");
		btn_division.setBounds(251, 227, 60, 23);
		contentPane.add(btn_division);
		btn_division.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "/");
			}
		});
		
		JButton btn_addieren = new JButton("+");
		btn_addieren.setBounds(251, 261, 60, 23);
		contentPane.add(btn_addieren);
		btn_addieren.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "+");
			}
		});
		
		JButton btn_subtraktion = new JButton("-");
		btn_subtraktion.setBounds(251, 295, 60, 23);
		contentPane.add(btn_subtraktion);
		btn_subtraktion.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				txt_ergebnis.setText(txt_ergebnis.getText()+ "-");
			}
		});
 

Java20134

Bekanntes Mitglied
Ich bräuchte nur einen Ansatz für den Quellcode und einen kleinen Kommentar, damit ich ungefähr weiß was rein muss.

Danke schon mal im Voraus!!! :)
 

kaoZ

Top Contributor
Klar kann man :)

wo genau ist jetzt dein Problem ?

Hier ist man ein Ansatz in EXTREMST vereinfachter Form, OHNE prüfung der Bedingungen und darauf welche Operation durchgeführt werden soll (+,-,*,/)

Man kann lediglich 1 + 2 rechnen, es wird optisch dargestellt. und das Ergebnis ausgegeben

Java:
package tests;

import java.awt.BorderLayout;
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.JPanel;
import javax.swing.JTextField;

public class Calculator implements ActionListener{
	
	JFrame frame;
	JPanel buttonPanel;
	JButton btn1, btn2, btnPlus, btnCalc;
	JTextField txt;
	private int a, b, result;
	
	{
		frame = new JFrame("Calculator");
		buttonPanel = new JPanel(new GridLayout(2,2));
		btn1 = new JButton("1");
		btn2 = new JButton("2");
		btnPlus = new JButton("+");
		btnCalc = new JButton("=");
		txt = new JTextField();
		txt.setEditable(false);
		
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.setSize(300,300);
	}

	public Calculator() {
		addComponents();
		show();
	}
	
	
	private void addComponents(){
		buttonPanel.add(btn1);
		btn1.addActionListener(this);
		buttonPanel.add(btn2);
		btn2.addActionListener(this);
		buttonPanel.add(btnPlus);
		btnPlus.addActionListener(this);
		buttonPanel.add(btnCalc);
		btnCalc.addActionListener(this);
		
		frame.add(BorderLayout.PAGE_START,buttonPanel);
		
		frame.add(BorderLayout.CENTER, txt);
	}
	
	public void show(){
		frame.setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == btn1) {
			txt.setText(txt.getText() + String.valueOf(" 1 "));
			a = 1;
		}
		if (e.getSource() == btn2) {
			txt.setText(txt.getText() + String.valueOf(" 2 "));
			b = 2;
		}
		if (e.getSource() == btnPlus) {
			txt.setText(txt.getText() + String.valueOf(" + "));	
		}
		if (e.getSource() == btnCalc) {
			result = a + b;
			
			txt.setText(String.valueOf(result));
		}
	}
	
	public static void main(String[] args) {
		new Calculator();
	}
}

[EDIT]
für den Operator könntest du z.B einfach einen vergleich mit .equals() starten beim klick auf den "=" button überprüft er dann welchem der operatoren er dann gleicht, z.B " + " und addiert dann wert1 und wert2 usw.
[/EDIT]
 
Zuletzt bearbeitet:

Java20134

Bekanntes Mitglied
Die Bedingungen sind dabei mein Problem! Man tippt ja eine Rechnung ein (7+8 = 15). Darauf muss der Rechner ja feststellen welcher Operator benutzt wurde und daraus die Lösung machen.

Und das ist mein Problem, ich versteh zwar die Theorie (ist auch nicht schwer), aber das in den Quelltext zu schreiben, dass ist mein PROBLEM!!!
 

Java20134

Bekanntes Mitglied
Das ist mein Quellcode den ich bis jetzt habe. Mein Problem ist jetzt, dass die Operatoren (+ - / *) nicht erkannt werden und somit auch keine Rechenoperation ausführt.

Java:
 import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
 
public class Calculator
{
   public static void main(String[] args)
   {
      CalculatorFrame frame = new CalculatorFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setBounds(100, 100, 361, 366);
      frame.setVisible(true);
     }
}
 
class CalculatorFrame extends JFrame
{
   public CalculatorFrame()
   {
      setTitle("Calculator");
      CalculatorPanel panel = new CalculatorPanel();
      add(panel);
      pack();
   }
}
 
class CalculatorPanel extends JPanel
{
   public CalculatorPanel()
   {
      setLayout(new BorderLayout());
 
      result = 0;
      lastCommand = "=";
      start = true;
 
      display = new JButton("0");
      display.setEnabled(false);
      add(display, BorderLayout.NORTH);
 
      //ActionListener insert = new InsertAction();
      ActionListener command = new CommandAction();
 
      panel = new JPanel();
      panel.setBorder(new EmptyBorder(5, 5, 5, 5));
      //setContentPane(panel);
      panel.setLayout(null);
 
		display.setBounds(41, 30, 269, 33);
		display.setText(""); 
		panel.add(display);
	//	display.setColumns(10);
							
		JButton btn_0 = new JButton("0");
		btn_0.setBounds(41, 295, 60, 23);
		panel.add(btn_0); 
		btn_0.addActionListener(new ActionListener()
			{
			public void actionPerformed(ActionEvent arg0)
			{
				display.setText(display.getText()+ "0");
			}
		});
				
		JButton btn_1 = new JButton("1");
		btn_1.setBounds(41, 261, 60, 23);
		panel.add(btn_1);
		btn_1.addActionListener(new ActionListener()	{
		public void actionPerformed(ActionEvent arg0){
		display.setText(display.getText()+ "1");
			}
		});
			
		JButton btn_2 = new JButton("2");
		btn_2.setBounds(111, 261, 60, 23);
		panel.add(btn_2);
		btn_2.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "2");
			}
		});
		
		JButton btn_3 = new JButton("3");
		btn_3.setBounds(181, 261, 60, 23);
		panel.add(btn_3);
		btn_3.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "3");
			}
		});
		
		JButton btn_4 = new JButton("4");
		btn_4.setBounds(41, 227, 60, 23);
		panel.add(btn_4);
		btn_4.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "4");
			}
		});
		
		JButton btn_5 = new JButton("5");
		btn_5.setBounds(111, 227, 60, 23);
		panel.add(btn_5);
		btn_5.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "5");
			}
		});
		
		JButton btn_6 = new JButton("6");
		btn_6.setBounds(181, 227, 60, 23);
		panel.add(btn_6);
		btn_6.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "6");
			}
		});
		
		JButton btn_7 = new JButton("7");
		btn_7.setBounds(41, 193, 60, 23);
		panel.add(btn_7);
		btn_7.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "7");
			}
		});
		
		JButton btn_8 = new JButton("8");
		btn_8.setBounds(111, 193, 60, 23);
		panel.add(btn_8);
		btn_8.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "8");
			}
		});
		
		JButton btn_9 = new JButton("9");
		btn_9.setBounds(181, 193, 60, 23);
		panel.add(btn_9);
		btn_9.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "9");
			}
		});
		
		JButton btn_pkt = new JButton(".");
		btn_pkt.setBounds(111, 295, 60, 23);
		panel.add(btn_pkt);
		btn_pkt.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ ".");
			}
		});
		
		JButton btn_ce = new JButton("CE");
		btn_ce.setBounds(251, 147, 60, 23);
		panel.add(btn_ce);
		btn_ce.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText().substring(0,display.getText().length()-1));
			}
	    });
		
		JButton btn_istgleich = new JButton("=");
		btn_istgleich.setBounds(181, 295, 60, 23);
		panel.add(btn_istgleich);
		btn_istgleich.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0){
			}
		});
		
		
		JButton btn_multiplikation = new JButton("*");
		btn_multiplikation.setBounds(251, 193, 60, 23);
		panel.add(btn_multiplikation);
		btn_multiplikation.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
	//			display.setText(display.getText()+ "*");
			}
		});
		
		
		JButton btn_division = new JButton("/");
		btn_division.setBounds(251, 227, 60, 23);
		panel.add(btn_division);
		btn_division.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "/");
			}
		});
		
		JButton btn_addieren = new JButton("+");
		btn_addieren.setBounds(251, 261, 60, 23);
		panel.add(btn_addieren);
		btn_addieren.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "+");
			}
		});
		
		JButton btn_subtraktion = new JButton("-");
		btn_subtraktion.setBounds(251, 295, 60, 23);
		panel.add(btn_subtraktion);
		btn_subtraktion.addActionListener(new ActionListener()	{
			public void actionPerformed(ActionEvent arg0){
				display.setText(display.getText()+ "-");
			}
		});
		
      
    /*addButton("7", insert);
      addButton("8", insert);
      addButton("9", insert);
      addButton("/", command);
 
      addButton("4", insert);
      addButton("5", insert);
      addButton("6", insert);
      addButton("*", command);
 
      addButton("1", insert);
      addButton("2", insert);
      addButton("3", insert);
      addButton("-", command);
 
      addButton("0", insert);
      addButton(".", insert);
      addButton("=", command);
      addButton("+", command);
     
    */
      add(panel, BorderLayout.CENTER);
   
   }
 


private void addButton(String label, ActionListener listener)
   {
      JButton button = new JButton(label);
      button.addActionListener(listener);
      panel.add(button);
   }
 
   private class InsertAction implements ActionListener
   {
      public void actionPerformed(ActionEvent event)
      {
         String input = event.getActionCommand();
         if (start)
         {
            display.setText("");
            start = false;
         }
         display.setText(display.getText() + input);
      }
   }
 
   /**
    * Diese Aktion führt den mit der Taste verbundenen
    * Befehl aus. 
    */
   private class CommandAction implements ActionListener
   {
      public void actionPerformed(ActionEvent arg0)
      {
         String command = arg0.getActionCommand();
 
         // Füge den Präfix "-" an den String an wenn
         // es sich um den ersten Befehl handelt (negative Zahl)
         if (start)
         {
            if (command.equals("-"))
            {
               display.setText(command);
               start = false;
            }
            else
               lastCommand = command;
         }
         else
         {
            // Berechnung ausführen
            calculate(Double.parseDouble(display.getText()));
            lastCommand = command;
            start = true;
         }
      }
   }
 
   /**
 

  * Führt die anstehenden Berechnungen aus.
    * @param x der mit dem vorherigen Ergebnis zu berechnende Wert
    */
   public void calculate(double x)
   {
      if (lastCommand.equals("+")) result += x;
      else if (lastCommand.equals("-")) result -= x;
      else if (lastCommand.equals("*")) result *= x;
      else if (lastCommand.equals("/")) result /= x;
      else if (lastCommand.equals("=")) result = x;
      display.setText("" + result);
   }
 
   private JButton display;
   private JPanel panel;
   private double result;
   private String lastCommand;
   private boolean start;
}
 

kaoZ

Top Contributor
Es gibt mehrere möglichkeiten dies zu realisieren eine wäre z.B getter und setter zu erstellen und konstanten für die einzelnen operatoren anzulegen, und dann beim Klick auf deinen berechnen Button zu prüfen ob dein eingabefeld diesen operator enthält, nicht die schönste lösung aber grad die am schnellsten zu schreibende ;P

z.B

Java:
package tests;

import java.awt.BorderLayout;
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.JPanel;
import javax.swing.JTextField;

public class Calculator implements ActionListener{
	
	final static String OPERATION_PLUS = " + ";
	final static String OPERATION_MINUS = " - ";
	
	JFrame frame;
	JPanel buttonPanel;
	JButton btn1, btn2, btnPlus, btnMinus, btnCalc;
	JTextField txt;
	private int a, b;
	
	private String operator;
	
	{
		frame = new JFrame("Calculator");
		buttonPanel = new JPanel(new GridLayout(2,2));
		btn1 = new JButton("1");
		btn2 = new JButton("2");
		btnPlus = new JButton("+");
		btnMinus = new JButton("-");
		btnCalc = new JButton("=");
		txt = new JTextField();
		txt.setEditable(false);
		
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.setSize(300,300);
	}

	public Calculator() {
		addComponents();
		show();
	}
	
	
	private void addComponents(){
		buttonPanel.add(btn1);
		btn1.addActionListener(this);
		buttonPanel.add(btn2);
		btn2.addActionListener(this);
		buttonPanel.add(btnPlus);
		btnPlus.addActionListener(this);
		buttonPanel.add(btnMinus);
		btnMinus.addActionListener(this);
		buttonPanel.add(btnCalc);
		btnCalc.addActionListener(this);
		
		frame.add(BorderLayout.PAGE_START,buttonPanel);
		
		frame.add(BorderLayout.CENTER, txt);
	}
	
	public void show(){
		frame.setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == btn1) {
			txt.setText(txt.getText() + String.valueOf(" 1 "));
			a = 1;
		}
		if (e.getSource() == btn2) {
			txt.setText(txt.getText() + String.valueOf(" 2 "));
			b = 2;
		}
		if (e.getSource() == btnPlus) {
			setOperator(OPERATION_PLUS);	// weist der Variable operator " + " zu 
			txt.setText(txt.getText() + getOperator());
		}
		if (e.getSource() == btnMinus) {
			setOperator(OPERATION_MINUS);	// weist der Variable operator " - " zu 
			txt.setText(txt.getText() + getOperator());
		}
		if (e.getSource() == btnCalc && txt.getText().contains(OPERATION_PLUS)) {
			System.out.println(String.valueOf(a + b));
			txt.setText(String.valueOf(a + b));
		}
		if (e.getSource() == btnCalc && txt.getText().contains(OPERATION_MINUS)) {
			System.out.println(String.valueOf(a - b));
			txt.setText(String.valueOf(a - b));
		}
	
	}
	
	public void setOperator(String operator){
		this.operator = operator;
	}
	
	public String getOperator(){
		return this.operator;
	}
	
	public static void main(String[] args) {
		new Calculator();
	}
}

[TIPP]Das Ganze ist hier natürlich EXTREM statisch , da du den Variablen jeweils nur einen Wert zuweisen kannst ( deshalb ergibt in dem Beispiel 2 + 2 = 2 da ich nur variable b einen Wert zuweise ) , mit einer ArrayList wäre das hier viel sinnvoller um längere operationen zu bewältigen, aber es ist ja auch nur ein Beispiel ;)[/TIPP]

PS : Null-Layouts are Evil :shock:
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben