Advertisement
Guest User

Taschenrechner

a guest
Oct 9th, 2018
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.52 KB | None | 0 0
  1. import java.awt.EventQueue;
  2. import javax.swing.JFrame;
  3. import javax.swing.JOptionPane;
  4. import javax.swing.JPanel;
  5. import javax.swing.JButton;
  6. import javax.swing.JTextField;
  7. import java.awt.event.ActionListener;
  8. import java.awt.geom.Ellipse2D;
  9. import java.lang.invoke.LambdaConversionException;
  10. import java.util.regex.Pattern;
  11. import java.awt.event.ActionEvent;
  12. import java.awt.Color;
  13. import java.awt.Font;
  14. import java.awt.Window;
  15. import java.awt.Window.Type;
  16. import java.awt.SystemColor;
  17. import javax.swing.UIManager;
  18. import javax.swing.JSeparator;
  19. import javax.swing.JToolBar;
  20. import javax.swing.JComboBox;
  21. import java.awt.Panel;
  22. import javax.swing.JLabel;
  23. import javax.swing.JEditorPane;
  24. import javax.swing.DropMode;
  25. import javax.swing.JTextArea;
  26. import javax.swing.JTextPane;
  27. import javax.swing.JFormattedTextField;
  28. import javax.swing.SwingConstants;
  29.  
  30.  
  31. public class Calculator {
  32.  
  33.     private JFrame frmRechner;
  34.     private JButton btnMinus;
  35.     private JButton btnMal;
  36.     private JButton btnTeilen;
  37.     private JButton btnErgebnis;
  38.     private JButton btnEins;
  39.     private JButton btnZwei;
  40.     private JButton btnDrei;
  41.     private JButton btnVier;
  42.     private JButton btnFuenf;
  43.     private JButton btnSechs;
  44.     private JButton btnSieben;
  45.     private JButton btnAcht;
  46.     private JButton btnNeun;
  47.     private JButton btnNull;
  48.     private JButton btnBack;
  49.     private JLabel labBack;
  50.  
  51.     //Variablen
  52.     double num;
  53.     String a;
  54.     int calc;
  55.     String strOp;
  56.     private JLabel labFront;
  57.    
  58.     public Calculator() {
  59.         initialize();
  60.     }
  61.  
  62.     //Sollte letzten 2 Eingaben ausgeben, nicht wirklich im Gebrauch
  63.     public void Rechnen() {
  64.         double ergGleich;
  65.         switch(calc) {
  66.         case 1:
  67.             ergGleich = num + Double.parseDouble(labFront.getText());
  68.             labFront.setText(Double.toString(ergGleich));
  69.             labBack.setText("");
  70.             break;
  71.         case 2:
  72.             ergGleich = num - Double.parseDouble(labFront.getText());
  73.             labFront.setText(Double.toString(ergGleich));
  74.             labBack.setText("");
  75.             break;
  76.         case 3:
  77.             ergGleich = num * Double.parseDouble(labFront.getText());
  78.             labFront.setText(Double.toString(ergGleich));
  79.             labBack.setText("");
  80.             break;
  81.         case 4:
  82.             ergGleich = num / Double.parseDouble(labFront.getText());
  83.             labFront.setText(Double.toString(ergGleich));
  84.             labBack.setText("");
  85.             break;
  86.         }
  87.        
  88.     }
  89.    
  90.     //Wenn Zahl gedrückt
  91.     public void NumberPressed(String i){
  92.    
  93.     labFront.setText(labFront.getText() + i);
  94.    
  95.     }
  96.    
  97.    
  98.     //Wenn Operator gedrückt
  99.     public void OperatorPressed(String op) {
  100.         double numb1 = 0, numb2, erg;
  101.        
  102.         numb2 = Double.parseDouble(labFront.getText()); //speichert Eingabe in Variable num2
  103.    
  104.        
  105.         if(labBack.getText().endsWith("+")) { //Prüft ob ein Operator schon eingegeben ist
  106.             numb1 += numb2; //Wert soll, wenn Operator schon eingegeben ist, an numb1 gegeben werden
  107.             numb2 = Double.parseDouble(labFront.getText()); //Hier sollte dann 2.Zahl eingelesen werden
  108.             erg = numb1 + numb2; //hier sollen dann Zahlen (in dem Fall addiert werden)
  109.             labFront.setText(Double.toString(erg)); //Ergebnis wird ausgegeben
  110.             labBack.setText(labBack.getText() + numb2 + op); //Zahl mit Operator in Hintergrund geschrieben
  111.         }
  112.         else { //Soll passieren wenn noch noch kein Operator vorher eingeben wurde
  113.             labBack.setText(labBack.getText() + numb2 + op);
  114.             labFront.setText("");
  115.         }
  116.        
  117.         }
  118.        
  119.         private void initialize() {
  120.         frmRechner = new JFrame();
  121.         frmRechner.getContentPane().setForeground(new Color(0, 0, 0));
  122.         frmRechner.setBackground(SystemColor.controlHighlight);
  123.         frmRechner.setForeground(Color.LIGHT_GRAY);
  124.         frmRechner.setTitle("Rechner");
  125.         frmRechner.getContentPane().setBackground(UIManager.getColor("menu"));
  126.         frmRechner.setBounds(100, 100, 320, 510);
  127.         frmRechner.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  128.         frmRechner.getContentPane().setLayout(null);
  129.        
  130.         //Knopf addieren (+)
  131.         JButton btnAddieren = new JButton("+");
  132.         btnAddieren.setFont(new Font("Tahoma", Font.PLAIN, 15));
  133.         btnAddieren.setBackground(SystemColor.controlHighlight);
  134.         btnAddieren.setForeground(Color.BLACK);
  135.         btnAddieren.addActionListener(new ActionListener() {
  136.             public void actionPerformed(ActionEvent arg0) {
  137.                 calc = 1;
  138.                 OperatorPressed(btnAddieren.getText());
  139.                
  140.             }
  141.         });
  142.         btnAddieren.setBounds(220, 350, 70, 40);
  143.         frmRechner.getContentPane().add(btnAddieren);
  144.        
  145.         //Knopf Subtrahieren (-)
  146.         btnMinus = new JButton("-");
  147.         btnMinus.setFont(new Font("Tahoma", Font.PLAIN, 15));
  148.         btnMinus.setBackground(SystemColor.controlHighlight);
  149.         btnMinus.addActionListener(new ActionListener() {
  150.             public void actionPerformed(ActionEvent e) {
  151.                 calc = 2;
  152.                 OperatorPressed(btnMinus.getText());
  153.             }
  154.         });
  155.         btnMinus.setBounds(220, 310, 70, 40);
  156.         frmRechner.getContentPane().add(btnMinus);
  157.        
  158.         //Knopf Multiplizieren (*)
  159.         btnMal = new JButton("*");
  160.         btnMal.setFont(new Font("Tahoma", Font.PLAIN, 15));
  161.         btnMal.setBackground(SystemColor.controlHighlight);
  162.         btnMal.addActionListener(new ActionListener() {
  163.             public void actionPerformed(ActionEvent e) {
  164.                 strOp = btnMal.getText();
  165.                 OperatorPressed(btnMal.getText());
  166.             }
  167.         });
  168.         btnMal.setBounds(220, 270, 70, 40);
  169.         frmRechner.getContentPane().add(btnMal);
  170.        
  171.         //Knopf Dividieren (/)
  172.         btnTeilen = new JButton("/");
  173.         btnTeilen.setFont(new Font("Tahoma", Font.PLAIN, 15));
  174.         btnTeilen.setBackground(SystemColor.controlHighlight);
  175.         btnTeilen.addActionListener(new ActionListener() {
  176.             public void actionPerformed(ActionEvent e) {
  177.                 strOp = btnTeilen.getText();
  178.                 OperatorPressed(btnTeilen.getText());
  179.             }
  180.         });
  181.         btnTeilen.setBounds(220, 230, 70, 40);
  182.         frmRechner.getContentPane().add(btnTeilen);
  183.        
  184.         //Knopf Ergebnis (=)
  185.         btnErgebnis = new JButton("=");
  186.         btnErgebnis.addActionListener(new ActionListener() {
  187.             public void actionPerformed(ActionEvent e) {
  188.                 Rechnen();
  189.                
  190.             }
  191.         });
  192.         btnErgebnis.setBackground(SystemColor.controlHighlight);
  193.         btnErgebnis.setBounds(220, 390, 70, 40);
  194.         frmRechner.getContentPane().add(btnErgebnis);
  195.        
  196.         //Knopf Eins (1)
  197.         btnEins = new JButton("1");
  198.         btnEins.setForeground(new Color(0, 0, 0));
  199.         btnEins.addActionListener(new ActionListener() {
  200.             public void actionPerformed(ActionEvent arg0) {
  201.                 NumberPressed(btnEins.getText());
  202.                
  203.             }
  204.         });
  205.         btnEins.setFont(new Font("Tahoma", Font.BOLD, 20));
  206.         btnEins.setBackground(SystemColor.text);
  207.         btnEins.setBounds(10, 350, 70, 40);
  208.         frmRechner.getContentPane().add(btnEins);
  209.        
  210.         btnZwei = new JButton("2");
  211.         btnZwei.setBounds(80, 350, 70, 40);
  212.         frmRechner.getContentPane().add(btnZwei);
  213.         btnZwei.setForeground(new Color(0, 0, 0));
  214.         btnZwei.addActionListener(new ActionListener() {
  215.             public void actionPerformed(ActionEvent arg0) {
  216.                 NumberPressed(btnZwei.getText());
  217.                
  218.             }
  219.         });
  220.         btnZwei.setFont(new Font("Tahoma", Font.BOLD, 20));
  221.         btnZwei.setBackground(SystemColor.text);
  222.        
  223.         //Knopf Drei (3)
  224.         btnDrei = new JButton("3");
  225.         btnDrei.setForeground(new Color(0, 0, 0));
  226.         btnDrei.addActionListener(new ActionListener() {
  227.             public void actionPerformed(ActionEvent e) {
  228.                 NumberPressed(btnDrei.getText());
  229.            
  230.             }
  231.         });
  232.         btnDrei.setFont(new Font("Tahoma", Font.BOLD, 20));
  233.         btnDrei.setBackground(SystemColor.text);
  234.         btnDrei.setBounds(150, 350, 70, 40);
  235.         frmRechner.getContentPane().add(btnDrei);
  236.        
  237.         //Knopf Vier (4)
  238.         btnVier = new JButton("4");
  239.         btnVier.setForeground(new Color(0, 0, 0));
  240.         btnVier.addActionListener(new ActionListener() {
  241.             public void actionPerformed(ActionEvent e) {
  242.                 NumberPressed(btnVier.getText());
  243.                
  244.             }
  245.         });
  246.         btnVier.setFont(new Font("Tahoma", Font.BOLD, 20));
  247.         btnVier.setBackground(SystemColor.text);
  248.         btnVier.setBounds(10, 310, 70, 40);
  249.         frmRechner.getContentPane().add(btnVier);
  250.        
  251.         //Knopf Fünf (5)
  252.         btnFuenf = new JButton("5");
  253.         btnFuenf.setForeground(new Color(0, 0, 0));
  254.         btnFuenf.addActionListener(new ActionListener() {
  255.             public void actionPerformed(ActionEvent e) {
  256.                 NumberPressed(btnFuenf.getText());
  257.                
  258.             }
  259.         });
  260.         btnFuenf.setFont(new Font("Tahoma", Font.BOLD, 20));
  261.         btnFuenf.setBackground(SystemColor.text);
  262.         btnFuenf.setBounds(80, 310, 70, 40);
  263.         frmRechner.getContentPane().add(btnFuenf);
  264.        
  265.         //Knopf Sechs (6)
  266.         btnSechs = new JButton("6");
  267.         btnSechs.setForeground(new Color(0, 0, 0));
  268.         btnSechs.addActionListener(new ActionListener() {
  269.             public void actionPerformed(ActionEvent e) {
  270.                 NumberPressed(btnSechs.getText());
  271.                
  272.             }
  273.         });
  274.         btnSechs.setFont(new Font("Tahoma", Font.BOLD, 20));
  275.         btnSechs.setBackground(SystemColor.text);
  276.         btnSechs.setBounds(150, 310, 70, 40);
  277.         frmRechner.getContentPane().add(btnSechs);
  278.        
  279.         //Knopf Sieben
  280.         btnSieben = new JButton("7");
  281.         btnSieben.addActionListener(new ActionListener() {
  282.             public void actionPerformed(ActionEvent e) {
  283.                 NumberPressed(btnSieben.getText());
  284.                
  285.             }
  286.         });
  287.         btnSieben.setForeground(new Color(0, 0, 0));
  288.         btnSieben.setFont(new Font("Tahoma", Font.BOLD, 20));
  289.         btnSieben.setBackground(SystemColor.text);
  290.         btnSieben.setBounds(10, 270, 70, 40);
  291.         frmRechner.getContentPane().add(btnSieben);
  292.        
  293.         //Knopf Acht (8)
  294.         btnAcht = new JButton("8");
  295.         btnAcht.setForeground(new Color(0, 0, 0));
  296.         btnAcht.addActionListener(new ActionListener() {
  297.             public void actionPerformed(ActionEvent e) {
  298.                 NumberPressed(btnAcht.getText());
  299.                
  300.             }
  301.         });
  302.         btnAcht.setFont(new Font("Tahoma", Font.BOLD, 20));
  303.         btnAcht.setBackground(SystemColor.text);
  304.         btnAcht.setBounds(80, 270, 70, 40);
  305.         frmRechner.getContentPane().add(btnAcht);
  306.        
  307.         //Knopf Neun (9)
  308.         btnNeun = new JButton("9");
  309.         btnNeun.setForeground(new Color(0, 0, 0));
  310.         btnNeun.addActionListener(new ActionListener() {
  311.             public void actionPerformed(ActionEvent arg0) {
  312.                 NumberPressed(btnNeun.getText());
  313.                
  314.             }
  315.         });
  316.         btnNeun.setFont(new Font("Tahoma", Font.BOLD, 20));
  317.         btnNeun.setBackground(SystemColor.text);
  318.         btnNeun.setBounds(150, 270, 70, 40);
  319.         frmRechner.getContentPane().add(btnNeun);
  320.        
  321.         //Knopf Null (0)
  322.         btnNull = new JButton("0");
  323.         btnNull.addActionListener(new ActionListener() {
  324.             public void actionPerformed(ActionEvent arg0) {
  325.                 NumberPressed(btnNull.getText());
  326.                
  327.             }
  328.         });
  329.         btnNull.setFont(new Font("Tahoma", Font.BOLD, 20));
  330.         btnNull.setBackground(SystemColor.text);
  331.         btnNull.setBounds(80, 390, 70, 40);
  332.         frmRechner.getContentPane().add(btnNull);
  333.        
  334.         //Knopf Clear
  335.         JButton btnClear = new JButton("C");
  336.         btnClear.addActionListener(new ActionListener() {
  337.             public void actionPerformed(ActionEvent e) {
  338.                 labBack.setText("");
  339.                 labFront.setText("");
  340.             }
  341.         });
  342.         btnClear.setForeground(Color.BLACK);
  343.         btnClear.setFont(new Font("Tahoma", Font.PLAIN, 15));
  344.         btnClear.setBackground(SystemColor.controlHighlight);
  345.         btnClear.setBounds(80, 230, 70, 40);
  346.         frmRechner.getContentPane().add(btnClear);
  347.        
  348.         btnBack = new JButton("<--");
  349.         btnBack.addActionListener(new ActionListener() {
  350.             public void actionPerformed(ActionEvent e) {
  351.                 int lenght = labFront.getText().length();
  352.                 int number = labFront.getText().length() - 1;
  353.                 String store;
  354.                
  355.                 if(lenght > 0) {
  356.                     StringBuilder back = new StringBuilder(labFront.getText());
  357.                     back.deleteCharAt(number); //Schrittweise -1
  358.                     store = back.toString(); //,,back'' muss wieder in String gewandelt werden
  359.                     labFront.setText(store); //gibt ,,store'' wieder in Text
  360.                 }
  361.                  
  362.             }
  363.         });
  364.         btnBack.setForeground(Color.BLACK);
  365.         btnBack.setFont(new Font("Tahoma", Font.PLAIN, 15));
  366.         btnBack.setBackground(SystemColor.controlHighlight);
  367.         btnBack.setBounds(150, 230, 70, 40);
  368.         frmRechner.getContentPane().add(btnBack);
  369.        
  370.        
  371.        
  372.        
  373.         //Knopf Vorzeichen ändern (+/-)
  374.         JButton button = new JButton("+/-");
  375.         button.setBackground(SystemColor.controlHighlight);
  376.         button.setBounds(10, 390, 70, 40);
  377.         frmRechner.getContentPane().add(button);
  378.        
  379.         //Knopf Komma setzten (,)
  380.         JButton btnKomma = new JButton(",");
  381.         btnKomma.addActionListener(new ActionListener() {
  382.             public void actionPerformed(ActionEvent arg0) {
  383.                 labFront.setText(labFront.getText() + ".");
  384.             }
  385.         });
  386.         btnKomma.setForeground(Color.BLACK);
  387.         btnKomma.setFont(new Font("Tahoma", Font.BOLD, 15));
  388.         btnKomma.setBackground(SystemColor.controlHighlight);
  389.         btnKomma.setBounds(150, 390, 70, 40);
  390.         frmRechner.getContentPane().add(btnKomma);
  391.        
  392.         //Knopf ClearEntry löschen letzter Eingabe(CE)
  393.         JButton btnClearEntry = new JButton("CE");
  394.         btnClearEntry.addActionListener(new ActionListener() {
  395.             public void actionPerformed(ActionEvent arg0) {
  396.                 labFront.setText("");
  397.             }
  398.         });
  399.         btnClearEntry.setForeground(Color.BLACK);
  400.         btnClearEntry.setFont(new Font("Tahoma", Font.PLAIN, 15));
  401.         btnClearEntry.setBackground(SystemColor.controlHighlight);
  402.         btnClearEntry.setBounds(10, 230, 70, 40);
  403.         frmRechner.getContentPane().add(btnClearEntry);
  404.        
  405.         labBack = new JLabel("");
  406.         labBack.setFont(new Font("Tahoma", Font.PLAIN, 12));
  407.         labBack.setVerticalAlignment(SwingConstants.TOP);
  408.         labBack.setHorizontalAlignment(SwingConstants.RIGHT);
  409.         labBack.setBounds(0, 54, 304, 67);
  410.         frmRechner.getContentPane().add(labBack);
  411.        
  412.         labFront = new JLabel("");
  413.         labFront.setFont(new Font("Tahoma", Font.PLAIN, 18));
  414.         labFront.setBackground(SystemColor.info);
  415.         labFront.setHorizontalAlignment(SwingConstants.RIGHT);
  416.         labFront.setBounds(0, 70, 304, 104);
  417.         frmRechner.getContentPane().add(labFront);
  418.        
  419.        
  420.        
  421.     }
  422.     public static void main(String[] args) {
  423.        
  424.         EventQueue.invokeLater(new Runnable() {
  425.             public void run() {
  426.                 try {
  427.                     Calculator window = new Calculator();
  428.                     window.frmRechner.setVisible(true);
  429.                 } catch (Exception e) {
  430.                     e.printStackTrace();
  431.                 }
  432.             }
  433.         });
  434.     }
  435.    
  436. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement