Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.EventQueue;
- import javax.swing.JFrame;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JButton;
- import javax.swing.JTextField;
- import java.awt.event.ActionListener;
- import java.awt.geom.Ellipse2D;
- import java.lang.invoke.LambdaConversionException;
- import java.util.regex.Pattern;
- import java.awt.event.ActionEvent;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Window;
- import java.awt.Window.Type;
- import java.awt.SystemColor;
- import javax.swing.UIManager;
- import javax.swing.JSeparator;
- import javax.swing.JToolBar;
- import javax.swing.JComboBox;
- import java.awt.Panel;
- import javax.swing.JLabel;
- import javax.swing.JEditorPane;
- import javax.swing.DropMode;
- import javax.swing.JTextArea;
- import javax.swing.JTextPane;
- import javax.swing.JFormattedTextField;
- import javax.swing.SwingConstants;
- public class Calculator {
- private JFrame frmRechner;
- private JButton btnMinus;
- private JButton btnMal;
- private JButton btnTeilen;
- private JButton btnErgebnis;
- private JButton btnEins;
- private JButton btnZwei;
- private JButton btnDrei;
- private JButton btnVier;
- private JButton btnFuenf;
- private JButton btnSechs;
- private JButton btnSieben;
- private JButton btnAcht;
- private JButton btnNeun;
- private JButton btnNull;
- private JButton btnBack;
- private JLabel labBack;
- //Variablen
- double num;
- String a;
- int calc;
- String strOp;
- private JLabel labFront;
- public Calculator() {
- initialize();
- }
- //Sollte letzten 2 Eingaben ausgeben, nicht wirklich im Gebrauch
- public void Rechnen() {
- double ergGleich;
- switch(calc) {
- case 1:
- ergGleich = num + Double.parseDouble(labFront.getText());
- labFront.setText(Double.toString(ergGleich));
- labBack.setText("");
- break;
- case 2:
- ergGleich = num - Double.parseDouble(labFront.getText());
- labFront.setText(Double.toString(ergGleich));
- labBack.setText("");
- break;
- case 3:
- ergGleich = num * Double.parseDouble(labFront.getText());
- labFront.setText(Double.toString(ergGleich));
- labBack.setText("");
- break;
- case 4:
- ergGleich = num / Double.parseDouble(labFront.getText());
- labFront.setText(Double.toString(ergGleich));
- labBack.setText("");
- break;
- }
- }
- //Wenn Zahl gedrückt
- public void NumberPressed(String i){
- labFront.setText(labFront.getText() + i);
- }
- //Wenn Operator gedrückt
- public void OperatorPressed(String op) {
- double numb1 = 0, numb2, erg;
- numb2 = Double.parseDouble(labFront.getText()); //speichert Eingabe in Variable num2
- if(labBack.getText().endsWith("+")) { //Prüft ob ein Operator schon eingegeben ist
- numb1 += numb2; //Wert soll, wenn Operator schon eingegeben ist, an numb1 gegeben werden
- numb2 = Double.parseDouble(labFront.getText()); //Hier sollte dann 2.Zahl eingelesen werden
- erg = numb1 + numb2; //hier sollen dann Zahlen (in dem Fall addiert werden)
- labFront.setText(Double.toString(erg)); //Ergebnis wird ausgegeben
- labBack.setText(labBack.getText() + numb2 + op); //Zahl mit Operator in Hintergrund geschrieben
- }
- else { //Soll passieren wenn noch noch kein Operator vorher eingeben wurde
- labBack.setText(labBack.getText() + numb2 + op);
- labFront.setText("");
- }
- }
- private void initialize() {
- frmRechner = new JFrame();
- frmRechner.getContentPane().setForeground(new Color(0, 0, 0));
- frmRechner.setBackground(SystemColor.controlHighlight);
- frmRechner.setForeground(Color.LIGHT_GRAY);
- frmRechner.setTitle("Rechner");
- frmRechner.getContentPane().setBackground(UIManager.getColor("menu"));
- frmRechner.setBounds(100, 100, 320, 510);
- frmRechner.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frmRechner.getContentPane().setLayout(null);
- //Knopf addieren (+)
- JButton btnAddieren = new JButton("+");
- btnAddieren.setFont(new Font("Tahoma", Font.PLAIN, 15));
- btnAddieren.setBackground(SystemColor.controlHighlight);
- btnAddieren.setForeground(Color.BLACK);
- btnAddieren.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent arg0) {
- calc = 1;
- OperatorPressed(btnAddieren.getText());
- }
- });
- btnAddieren.setBounds(220, 350, 70, 40);
- frmRechner.getContentPane().add(btnAddieren);
- //Knopf Subtrahieren (-)
- btnMinus = new JButton("-");
- btnMinus.setFont(new Font("Tahoma", Font.PLAIN, 15));
- btnMinus.setBackground(SystemColor.controlHighlight);
- btnMinus.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- calc = 2;
- OperatorPressed(btnMinus.getText());
- }
- });
- btnMinus.setBounds(220, 310, 70, 40);
- frmRechner.getContentPane().add(btnMinus);
- //Knopf Multiplizieren (*)
- btnMal = new JButton("*");
- btnMal.setFont(new Font("Tahoma", Font.PLAIN, 15));
- btnMal.setBackground(SystemColor.controlHighlight);
- btnMal.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- strOp = btnMal.getText();
- OperatorPressed(btnMal.getText());
- }
- });
- btnMal.setBounds(220, 270, 70, 40);
- frmRechner.getContentPane().add(btnMal);
- //Knopf Dividieren (/)
- btnTeilen = new JButton("/");
- btnTeilen.setFont(new Font("Tahoma", Font.PLAIN, 15));
- btnTeilen.setBackground(SystemColor.controlHighlight);
- btnTeilen.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- strOp = btnTeilen.getText();
- OperatorPressed(btnTeilen.getText());
- }
- });
- btnTeilen.setBounds(220, 230, 70, 40);
- frmRechner.getContentPane().add(btnTeilen);
- //Knopf Ergebnis (=)
- btnErgebnis = new JButton("=");
- btnErgebnis.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- Rechnen();
- }
- });
- btnErgebnis.setBackground(SystemColor.controlHighlight);
- btnErgebnis.setBounds(220, 390, 70, 40);
- frmRechner.getContentPane().add(btnErgebnis);
- //Knopf Eins (1)
- btnEins = new JButton("1");
- btnEins.setForeground(new Color(0, 0, 0));
- btnEins.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent arg0) {
- NumberPressed(btnEins.getText());
- }
- });
- btnEins.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnEins.setBackground(SystemColor.text);
- btnEins.setBounds(10, 350, 70, 40);
- frmRechner.getContentPane().add(btnEins);
- btnZwei = new JButton("2");
- btnZwei.setBounds(80, 350, 70, 40);
- frmRechner.getContentPane().add(btnZwei);
- btnZwei.setForeground(new Color(0, 0, 0));
- btnZwei.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent arg0) {
- NumberPressed(btnZwei.getText());
- }
- });
- btnZwei.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnZwei.setBackground(SystemColor.text);
- //Knopf Drei (3)
- btnDrei = new JButton("3");
- btnDrei.setForeground(new Color(0, 0, 0));
- btnDrei.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- NumberPressed(btnDrei.getText());
- }
- });
- btnDrei.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnDrei.setBackground(SystemColor.text);
- btnDrei.setBounds(150, 350, 70, 40);
- frmRechner.getContentPane().add(btnDrei);
- //Knopf Vier (4)
- btnVier = new JButton("4");
- btnVier.setForeground(new Color(0, 0, 0));
- btnVier.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- NumberPressed(btnVier.getText());
- }
- });
- btnVier.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnVier.setBackground(SystemColor.text);
- btnVier.setBounds(10, 310, 70, 40);
- frmRechner.getContentPane().add(btnVier);
- //Knopf Fünf (5)
- btnFuenf = new JButton("5");
- btnFuenf.setForeground(new Color(0, 0, 0));
- btnFuenf.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- NumberPressed(btnFuenf.getText());
- }
- });
- btnFuenf.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnFuenf.setBackground(SystemColor.text);
- btnFuenf.setBounds(80, 310, 70, 40);
- frmRechner.getContentPane().add(btnFuenf);
- //Knopf Sechs (6)
- btnSechs = new JButton("6");
- btnSechs.setForeground(new Color(0, 0, 0));
- btnSechs.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- NumberPressed(btnSechs.getText());
- }
- });
- btnSechs.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnSechs.setBackground(SystemColor.text);
- btnSechs.setBounds(150, 310, 70, 40);
- frmRechner.getContentPane().add(btnSechs);
- //Knopf Sieben
- btnSieben = new JButton("7");
- btnSieben.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- NumberPressed(btnSieben.getText());
- }
- });
- btnSieben.setForeground(new Color(0, 0, 0));
- btnSieben.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnSieben.setBackground(SystemColor.text);
- btnSieben.setBounds(10, 270, 70, 40);
- frmRechner.getContentPane().add(btnSieben);
- //Knopf Acht (8)
- btnAcht = new JButton("8");
- btnAcht.setForeground(new Color(0, 0, 0));
- btnAcht.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- NumberPressed(btnAcht.getText());
- }
- });
- btnAcht.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnAcht.setBackground(SystemColor.text);
- btnAcht.setBounds(80, 270, 70, 40);
- frmRechner.getContentPane().add(btnAcht);
- //Knopf Neun (9)
- btnNeun = new JButton("9");
- btnNeun.setForeground(new Color(0, 0, 0));
- btnNeun.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent arg0) {
- NumberPressed(btnNeun.getText());
- }
- });
- btnNeun.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnNeun.setBackground(SystemColor.text);
- btnNeun.setBounds(150, 270, 70, 40);
- frmRechner.getContentPane().add(btnNeun);
- //Knopf Null (0)
- btnNull = new JButton("0");
- btnNull.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent arg0) {
- NumberPressed(btnNull.getText());
- }
- });
- btnNull.setFont(new Font("Tahoma", Font.BOLD, 20));
- btnNull.setBackground(SystemColor.text);
- btnNull.setBounds(80, 390, 70, 40);
- frmRechner.getContentPane().add(btnNull);
- //Knopf Clear
- JButton btnClear = new JButton("C");
- btnClear.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- labBack.setText("");
- labFront.setText("");
- }
- });
- btnClear.setForeground(Color.BLACK);
- btnClear.setFont(new Font("Tahoma", Font.PLAIN, 15));
- btnClear.setBackground(SystemColor.controlHighlight);
- btnClear.setBounds(80, 230, 70, 40);
- frmRechner.getContentPane().add(btnClear);
- btnBack = new JButton("<--");
- btnBack.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- int lenght = labFront.getText().length();
- int number = labFront.getText().length() - 1;
- String store;
- if(lenght > 0) {
- StringBuilder back = new StringBuilder(labFront.getText());
- back.deleteCharAt(number); //Schrittweise -1
- store = back.toString(); //,,back'' muss wieder in String gewandelt werden
- labFront.setText(store); //gibt ,,store'' wieder in Text
- }
- }
- });
- btnBack.setForeground(Color.BLACK);
- btnBack.setFont(new Font("Tahoma", Font.PLAIN, 15));
- btnBack.setBackground(SystemColor.controlHighlight);
- btnBack.setBounds(150, 230, 70, 40);
- frmRechner.getContentPane().add(btnBack);
- //Knopf Vorzeichen ändern (+/-)
- JButton button = new JButton("+/-");
- button.setBackground(SystemColor.controlHighlight);
- button.setBounds(10, 390, 70, 40);
- frmRechner.getContentPane().add(button);
- //Knopf Komma setzten (,)
- JButton btnKomma = new JButton(",");
- btnKomma.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent arg0) {
- labFront.setText(labFront.getText() + ".");
- }
- });
- btnKomma.setForeground(Color.BLACK);
- btnKomma.setFont(new Font("Tahoma", Font.BOLD, 15));
- btnKomma.setBackground(SystemColor.controlHighlight);
- btnKomma.setBounds(150, 390, 70, 40);
- frmRechner.getContentPane().add(btnKomma);
- //Knopf ClearEntry löschen letzter Eingabe(CE)
- JButton btnClearEntry = new JButton("CE");
- btnClearEntry.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent arg0) {
- labFront.setText("");
- }
- });
- btnClearEntry.setForeground(Color.BLACK);
- btnClearEntry.setFont(new Font("Tahoma", Font.PLAIN, 15));
- btnClearEntry.setBackground(SystemColor.controlHighlight);
- btnClearEntry.setBounds(10, 230, 70, 40);
- frmRechner.getContentPane().add(btnClearEntry);
- labBack = new JLabel("");
- labBack.setFont(new Font("Tahoma", Font.PLAIN, 12));
- labBack.setVerticalAlignment(SwingConstants.TOP);
- labBack.setHorizontalAlignment(SwingConstants.RIGHT);
- labBack.setBounds(0, 54, 304, 67);
- frmRechner.getContentPane().add(labBack);
- labFront = new JLabel("");
- labFront.setFont(new Font("Tahoma", Font.PLAIN, 18));
- labFront.setBackground(SystemColor.info);
- labFront.setHorizontalAlignment(SwingConstants.RIGHT);
- labFront.setBounds(0, 70, 304, 104);
- frmRechner.getContentPane().add(labFront);
- }
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- public void run() {
- try {
- Calculator window = new Calculator();
- window.frmRechner.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement