Hallo zusammen, in meinem kleinen (aber feinen) Taschenrechner code stehe ich vor meinem nächsten Problem
Beim drücken der "=" Taste soll der Outputstring der bisher aus "zahl rechenzeichen zahl rechenzeichen zahl.... =" besteht aufgeteilt werden, jeweils an den Rechenzeichen +|-|*|/ es sollen nummern generiert werden und rechenzeichen, die ich am ende in einer Formel zusammenfügen kann und das Ergebnis im ergebnisFeld ausgeben kann.
Muss ich mit einer Schleife herangehen um den String zu durchlaufen und dann an den entsprechenden Zeichen zu trennen und die entsprechende Zahl an zahlenVariablen zu definieren?!
hier mein bisheriger Code:
Beim drücken der "=" Taste soll der Outputstring der bisher aus "zahl rechenzeichen zahl rechenzeichen zahl.... =" besteht aufgeteilt werden, jeweils an den Rechenzeichen +|-|*|/ es sollen nummern generiert werden und rechenzeichen, die ich am ende in einer Formel zusammenfügen kann und das Ergebnis im ergebnisFeld ausgeben kann.
Muss ich mit einer Schleife herangehen um den String zu durchlaufen und dann an den entsprechenden Zeichen zu trennen und die entsprechende Zahl an zahlenVariablen zu definieren?!
hier mein bisheriger Code:
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.*;
public class GUI_calculator {
public static boolean rechenzeichen = true;
public static void main(String[] args) {
JFrame mainframe = new JFrame("Calculator");
mainframe.setBounds(0,0,500,300);
JLabel fueller = new JLabel();
final JTextField outputLine = new JTextField("");
outputLine.setBounds(300,5,180,50);
outputLine.setEditable(false);
outputLine.setText("");
mainframe.add(outputLine);
final JTextField ergebnis = new JTextField("");
ergebnis.setBounds(300,56,180,50);
mainframe.add(ergebnis);
ergebnis.setEditable(false);
//---------------------------------------------------------------
JButton button1 = new JButton("1");
button1.setBounds(0,50,50,50);
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_1 = "1";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_1);
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton button2 = new JButton("2");
button2.setBounds(50,50,50,50);
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_2 = "2";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_2);;
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton button3 = new JButton("3");
button3.setBounds(100,50,50,50);
button3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_3 = "3";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_3);;
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton button4 = new JButton("4");
button4.setBounds(0,100,50,50);
button4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_4 = "4";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_4);;
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton button5 = new JButton("5");
button5.setBounds(50,100,50,50);
button5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_5 = "5";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_5);;
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton button6 = new JButton("6");
button6.setBounds(100,100,50,50);
button6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_6 = "6";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_6);;
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton button7 = new JButton("7");
button7.setBounds(0,150,50,50);
button7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_7 = "7";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_7);;
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton button8 = new JButton("8");
button8.setBounds(50,150,50,50);
button8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_8 = "8";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_8);;
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton button9 = new JButton("9");
button9.setBounds(100,150,50,50);
button9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_9 = "9";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_9);;
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton button0 = new JButton("0");
button0.setBounds(50,200,50,50);
button0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String zahl_0 = "0";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(zahl_0);;
outputLine.setText(newOutput);
if(GUI_calculator.rechenzeichen == false)
{
GUI_calculator.rechenzeichen = true;
}
}});
JButton clearBack = new JButton("C");
clearBack.setBounds(0,200,50,50);
clearBack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
outputLine.setText("");
ergebnis.setText("");;
}});
JButton solve = new JButton("=");
solve.setBounds(100,200,50,50);
solve.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if(GUI_calculator.rechenzeichen == true && !(outputLine.getText().equals(""))){
String gleich = " = ";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(gleich);;
outputLine.setText(newOutput);
GUI_calculator.rechenzeichen=false;
}}});
//---------------------------------------------------------------
JButton plus = new JButton("+");
plus.setBounds(155,50,50,50);
plus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if(GUI_calculator.rechenzeichen == true && !(outputLine.getText().equals(""))){
String plus = " + ";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(plus);;
outputLine.setText(newOutput);
GUI_calculator.rechenzeichen=false;
}}});
JButton minus = new JButton("-");
minus.setBounds(155,100,50,50);
minus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if(GUI_calculator.rechenzeichen == true && !(outputLine.getText().equals(""))){
String plus = " - ";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(plus);;
outputLine.setText(newOutput);
GUI_calculator.rechenzeichen=false;
}}});
JButton mal = new JButton("*");
mal.setBounds(155,150,50,50);
mal.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if(GUI_calculator.rechenzeichen == true && !(outputLine.getText().equals(""))){
String plus = " * ";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(plus);;
outputLine.setText(newOutput);
GUI_calculator.rechenzeichen=false;
}}});
JButton geteilt = new JButton("/");
geteilt.setBounds(155,200,50,50);
geteilt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if(GUI_calculator.rechenzeichen == true && !(outputLine.getText().equals(""))){
String plus = " / ";
String oldOutput = outputLine.getText();
String newOutput = oldOutput.concat(plus);;
outputLine.setText(newOutput);
GUI_calculator.rechenzeichen=false;
}}});
//---------------------------------------------------------------
mainframe.add(plus);
mainframe.add(minus);
mainframe.add(mal);
mainframe.add(geteilt);
//---------------------------------------------------------------
mainframe.add(button1);
mainframe.add(button2);
mainframe.add(button3);
mainframe.add(button4);
mainframe.add(button5);
mainframe.add(button6);
mainframe.add(button7);
mainframe.add(button8);
mainframe.add(button9);
mainframe.add(button0);
mainframe.add(clearBack);
mainframe.add(solve);
mainframe.add(fueller);
//---------------------------------------------------------------
mainframe.setVisible(true);
}
}