Taschenrechner mit Java JFrame programmieren

Neue Frage »

Auf diesen Beitrag antworten »
Lenaa Taschenrechner mit Java JFrame programmieren

Meine Frage:
hallo erstmal smile
wir müssen in Info einen Taschenrechner mit Java und JFrame programmieren... das Design ist angelegt, mehr aber auch nicht ... ich hab ein totales Blackout ... meine Frage ist nun wie ich das Programm erstmal dazu bringe, dass die Zahl des jewiligen Buttons in dem Textfeld erscheint, danach noch die ganzen Funktionen.
Ich wäre um jeden Ratschlag seeeehr dankbar, also schonmal vielen Dank im Voraus smile

Meine Ideen:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
//java math noch importieren
/**
*
* Beschreibung
* wissenschaftlicher Taschenrechner erstellt mit Javaeditor (Dateiname: scientificcalculator.java) und JFrame (scientificcalculator.jfm)
* @Infoprojekt des 2. Halbjahres im Schuljahr 2014/15
* @version 13.2 vom 20.06.2015
* @L&D
*/

//Vorgehensweise: 1.JFrame erstellen; 2.Tasten beschriften; 3.Befehle für Tasten; 4.Design und Tastenfarben ändern
//Hinweis: Buttons sind nicht chronologisch angeordnet



public class ScientificCalculator extends JFrame {
JTextField tfield;

// Anfang Attribute
private TextField textField1 = new TextField();
private JButton jButton1 = new JButton("7");
private JButton jButton2 = new JButton("2");
private JButton jButton3 = new JButton("3");
private JButton jButton4 = new JButton("5");
private JButton jButton5 = new JButton("6");
private JButton jButton6 = new JButton("4");
private JButton jButton7 = new JButton("1");
private JButton jButton8 = new JButton("8");
private JButton jButton9 = new JButton("9");
private JButton jButton10 = new JButton("0");
private JButton jButton11 = new JButton("=");
private JButton jButton12 = new JButton("MR");
private JButton jButton13 = new JButton("MC");
private JButton jButton14 = new JButton();
private JButton jButton15 = new JButton("AC");
private JButton jButton17 = new JButton("/");
private JButton jButton18 = new JButton("*");
private JButton jButton19 = new JButton("-");
private JButton jButton20 = new JButton("+");
private JButton jButton16 = new JButton();
private JButton jButton21 = new JButton("tan");
private JButton jButton22 = new JButton("cos");
private JButton jButton23 = new JButton("+/-");
private JButton jButton24 = new JButton("sin");
private JButton jButton25 = new JButton("n!");
private JButton jButton26 = new JButton("sqrd");
private JButton jButton27 = new JButton("x^3");
private JButton jButton28 = new JButton("x^2");
private JButton jButton29 = new JButton("log");
private JButton jButton30 = new JButton("1/x");
// Ende Attribute

//Farben der Tasten ändern --> Zahlen:blau; anderes:rot



public ScientificCalculator(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { dispose(); }
});
int frameWidth = 359;
int frameHeight = 311;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setResizable(false);
Panel cp = new Panel(null);
add(cp);
// Anfang Komponenten
// Buttons benennen; durcheinander; zu viele, evtl noch welche löschen

textField1.setBounds(8, 8, 329, 33);
cp.add(textField1);
jButton1.setBounds(8, 176, 49, 41);
jButton1.setText("7");
jButton1.setMargin(new Insets(2, 2, 2, 2));
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1_ActionPerformed(evt);
}
});
cp.add(jButton1);
jButton2.setBounds(64, 80, 49, 41);
jButton2.setText("2");
jButton2.setMargin(new Insets(2, 2, 2, 2));
jButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton2_ActionPerformed(evt);
}
});
cp.add(jButton2);
jButton3.setBounds(120, 80, 49, 41);
jButton3.setText("3");
jButton3.setMargin(new Insets(2, 2, 2, 2));
jButton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton3_ActionPerformed(evt);
}
});
cp.add(jButton3);
jButton4.setBounds(64, 128, 49, 41);
jButton4.setText("5");
jButton4.setMargin(new Insets(2, 2, 2, 2));
jButton4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton4_ActionPerformed(evt);
}
});
cp.add(jButton4);
jButton5.setBounds(120, 128, 49, 41);
jButton5.setText("6");
jButton5.setMargin(new Insets(2, 2, 2, 2));
jButton5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton5_ActionPerformed(evt);
}
});
cp.add(jButton5);
jButton6.setBounds(8, 128, 49, 41);
jButton6.setText("4");
jButton6.setMargin(new Insets(2, 2, 2, 2));
jButton6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton6_ActionPerformed(evt);
}
});
cp.add(jButton6);
jButton7.setBounds(8, 80, 49, 41);
jButton7.setText("1");
jButton7.setMargin(new Insets(2, 2, 2, 2));
jButton7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton7_ActionPerformed(evt);
}
});
cp.add(jButton7);
jButton8.setBounds(64, 176, 49, 41);
jButton8.setText("8");
jButton8.setMargin(new Insets(2, 2, 2, 2));
jButton8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton8_ActionPerformed(evt);
}
});
cp.add(jButton8);
jButton9.setBounds(120, 176, 49, 41);
jButton9.setText("9");
jButton9.setMargin(new Insets(2, 2, 2, 2));
jButton9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton9_ActionPerformed(evt);
}
});
cp.add(jButton9);
jButton10.setBounds(120, 224, 49, 41);
jButton10.setText("0");
jButton10.setMargin(new Insets(2, 2, 2, 2));
jButton10.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton10_ActionPerformed(evt);
}
});
cp.add(jButton10);
jButton11.setBounds(64, 224, 49, 41);
jButton11.setText("=");
jButton11.setMargin(new Insets(2, 2, 2, 2));
jButton11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton11_ActionPerformed(evt);
}
});
cp.add(jButton11);
jButton12.setBounds(120, 48, 49, 25);
jButton12.setText("MR");
jButton12.setMargin(new Insets(2, 2, 2, 2));
jButton12.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton12_ActionPerformed(evt);
}
});
cp.add(jButton12);
jButton13.setBounds(64, 48, 49, 25);
jButton13.setText("MC");
jButton13.setMargin(new Insets(2, 2, 2, 2));
jButton13.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton13_ActionPerformed(evt);
}
});
cp.add(jButton13);
jButton14.setBounds(8, 48, 49, 25);
jButton14.setText("MS");
jButton14.setMargin(new Insets(2, 2, 2, 2));
jButton14.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton14_ActionPerformed(evt);
}
});
cp.add(jButton14);
jButton15.setBounds(176, 48, 49, 25);
jButton15.setText("AC");
jButton15.setMargin(new Insets(2, 2, 2, 2));
jButton15.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton15_ActionPerformed(evt);
}
});
cp.add(jButton15);
jButton17.setBounds(176, 224, 49, 41);
jButton17.setText("/");
jButton17.setMargin(new Insets(2, 2, 2, 2));
jButton17.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton17_ActionPerformed(evt);
}
});
cp.add(jButton17);
jButton18.setBounds(176, 176, 49, 41);
jButton18.setText("*");
jButton18.setMargin(new Insets(2, 2, 2, 2));
jButton18.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton18_ActionPerformed(evt);
}
});
cp.add(jButton18);
jButton19.setBounds(176, 128, 49, 41);
jButton19.setText("-");
jButton19.setMargin(new Insets(2, 2, 2, 2));
jButton19.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton19_ActionPerformed(evt);
}
});
cp.add(jButton19);
jButton20.setBounds(176, 80, 49, 41);
jButton20.setText("+");
jButton20.setMargin(new Insets(2, 2, 2, 2));
jButton20.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton20_ActionPerformed(evt);
}
});
cp.add(jButton20);
jButton16.setBounds(8, 224, 49, 41);
jButton16.setText("+");
jButton16.setMargin(new Insets(2, 2, 2, 2));
jButton16.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton16_ActionPerformed(evt);
}
});
cp.add(jButton16);
jButton21.setBounds(232, 176, 49, 41);
jButton21.setText("tan");
jButton21.setMargin(new Insets(2, 2, 2, 2));
jButton21.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton21_ActionPerformed(evt);
}
});
cp.add(jButton21);
jButton22.setBounds(232, 128, 49, 41);
jButton22.setText("cos");
jButton22.setMargin(new Insets(2, 2, 2, 2));
jButton22.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton22_ActionPerformed(evt);
}
});
cp.add(jButton22);
jButton23.setBounds(232, 224, 49, 41);
jButton23.setText("+/-");
jButton23.setMargin(new Insets(2, 2, 2, 2));
jButton23.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton23_ActionPerformed(evt);
}
});
cp.add(jButton23);
jButton24.setBounds(232, 80, 49, 41);
jButton24.setText("sin");
jButton24.setMargin(new Insets(2, 2, 2, 2));
jButton24.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton24_ActionPerformed(evt);
}
});
cp.add(jButton24);
jButton25.setBounds(288, 224, 49, 41);
jButton25.setText("n!");
jButton25.setMargin(new Insets(2, 2, 2, 2));
jButton25.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton25_ActionPerformed(evt);
}
});
cp.add(jButton25);
jButton26.setBounds(288, 176, 49, 41);
jButton26.setText("sqrd");
jButton26.setMargin(new Insets(2, 2, 2, 2));
jButton26.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton26_ActionPerformed(evt);
}
});
cp.add(jButton26);
jButton27.setBounds(288, 128, 49, 41);
jButton27.setText("x^3");
jButton27.setMargin(new Insets(2, 2, 2, 2));
jButton27.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton27_ActionPerformed(evt);
}
});
cp.add(jButton27);
jButton28.setBounds(288, 80, 49, 41);
jButton28.setText("x^2");
jButton28.setMargin(new Insets(2, 2, 2, 2));
jButton28.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton28_ActionPerformed(evt);
}
});
cp.add(jButton28);
jButton29.setBounds(232, 48, 49, 25);
jButton29.setText("log");
jButton29.setMargin(new Insets(2, 2, 2, 2));
jButton29.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton29_ActionPerformed(evt);
}
});
cp.add(jButton29);
jButton30.setBounds(288, 48, 49, 25);
jButton30.setText("1/x");
jButton30.setMargin(new Insets(2, 2, 2, 2));
jButton30.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton30_ActionPerformed(evt);
}
});
cp.add(jButton30);
// Ende Komponenten

setVisible(true);
} // end of public ScientificCalculator



// Anfang Methoden

public static void main(String[] args) {
new ScientificCalculator("ScientificCalculator");
} // end of main

public void jButton1_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen }
} // end of jButton1_ActionPerformed

public void jButton2_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton2_ActionPerformed

public void jButton3_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton3_ActionPerformed

public void jButton4_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton4_ActionPerformed

public void jButton5_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton5_ActionPerformed

public void jButton6_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton6_ActionPerformed

public void jButton7_ActionPerformed(ActionEvent evt) {

}

public void jButton8_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton8_ActionPerformed

public void jButton9_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton9_ActionPerformed

public void jButton10_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton10_ActionPerformed

public void jButton11_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton11_ActionPerformed

public void jButton12_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton12_ActionPerformed

public void jButton13_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton13_ActionPerformed

public void jButton14_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton14_ActionPerformed

public void jButton15_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton15_ActionPerformed

public void jButton17_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton17_ActionPerformed

public void jButton18_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton18_ActionPerformed

public void jButton19_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton19_ActionPerformed

public void jButton20_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton20_ActionPerformed

public void jButton16_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton16_ActionPerformed

public void jButton21_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton21_ActionPerformed

public void jButton22_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton22_ActionPerformed

public void jButton23_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton23_ActionPerformed

public void jButton24_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton24_ActionPerformed

public void jButton25_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton25_ActionPerformed

public void jButton26_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton26_ActionPerformed

public void jButton27_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton27_ActionPerformed

public void jButton28_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton28_ActionPerformed

public void jButton29_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton29_ActionPerformed

public void jButton30_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton30_ActionPerformed

}

// Ende Methoden
//design ändern --> get look and feel sunset
// end of class scientificcalculator
 
Auf diesen Beitrag antworten »
eulerscheZahl

Da du neu in Java scheinst, habe ich den Code möglichst einfach gehalten. Es gibt sicher bessere Wege, das umzusetzen. Auch ist meine Lösung nicht perfekt (wenn du mehr als 2 Zahlen addieren willst, musst du dazwischen immer auf = klicken).

So kriegst du eine Zahl ans Textfeld angefügt:
code:
1:
2:
3:
public void jButton1_ActionPerformed(ActionEvent evt) {
    textField1.setText(textField1.getText() + "7");
}


Und so eine Funktion:
code:
1:
2:
3:
4:
5:
    public void jButton28_ActionPerformed(ActionEvent evt) {
        double number = Double.parseDouble(textField1.getText());
        number = number * number;
        textField1.setText(String.valueOf(number));
    }


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
private double ans = 0;
private int mode = 0; //1=+  2=-  3=*  4=/

    public void jButton20_ActionPerformed(ActionEvent evt) {
        ans = ans + Double.parseDouble(textField1.getText());
        textField1.setText("");
    }

    public void jButton11_ActionPerformed(ActionEvent evt) {
        double number = Double.parseDouble(textField1.getText());
        switch (mode) {
            case 1:
                ans += number;
                break;
            // case 2, 3, 4...
        }
        textField1.setText(String.valueOf(ans));
    }
Auf diesen Beitrag antworten »
Lenaa

Vielen vielen Dank! smile werde es gleich ausprobieren großes Grinsen
Und ja bin relativ neu in Java ...
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »