Cet article décrit les fonctions de calculatoires implémentées par Java. Partagez-le pour votre référence, comme suit:
Package awtdemo; import java.awt.borderlayout; import java.awt.color; import java.awt.gridlayout; import java.awt.event.actionevent; import java.awt.event.actionlistner; import javax.swing.jbutton; import javax.swing.jframe; importation javax.wing.jpanel; javax.swing.jtextfield; @SuppressWarnings ("Serial") La calculatrice de classe publique étend JFrame implémente ActionListener {private final String [] keys = {"7", "8", "9", "/", "sqrt", "4", "5", "6", "", "%", "1", "" "", "3", "" "" "0", "+/-", ".", "+", "="}; String final privé [] commande = {"backspace", "ce", "c"}; Jbutton Keys privé [] = new JButton [keys.length]; Commandes privées jbutton [] = new JButton [Command.length]; private jTextField resultText = new JTextField ("0"); Boolean privé FirstDigit = true; Double résultat privé = 0,0; Opérateur de chaînes privées = "="; Operator booléen privéValidflag = true; Calculatrice publique () {init (); this.setbackground (Color.light_Gray); this.setTitle ("www.vevb.com - calculatrice"); this.setLocation (500, 300); this.setResiSable (false); this.pack (); } private void init () {resultText.SethorizontalAlignment (jTextField.Right); resultText.SetEdIT (false); resultText.setBackground (Color.white); Jpanel calckeyspanel = new JPanel (); calckeyspanel.setLayout (nouveau gridLayout (4, 5, 3, 3)); for (int i = 0; i <keys.length; i ++) {keys [i] = new Jbutton (keys [i]); calckeyspanel.add (clés [i]); touches [i] .setForeground (color.blue); } touches [3] .setForeground (Color.red); touches [8] .setForeground (Color.Red); touches [13] .setForeground (color.red); Keys [18] .setForeground (Color.Red); Keys [19] .setForeground (Color.Red); Jpanel CommandSpanel = new JPanel (); CommandSpanel.SetLayout (new GridLayout (1, 3, 3, 3)); for (int i = 0; i <command.length; i ++) {commandes [i] = new Jbutton (Command [i]); CommandSpanel.Add (Commands [i]); Commandes [i] .setForeground (Color.Red); } Jpanel Panel1 = new JPanel (); PANNEL1.SetLayout (New BorderLayout (3, 3)); PANNEL1.ADD ("North", CommandSpanel); PANNEL1.ADD ("West", Calckeyspanel); Jpanel top = new JPanel (); top.setLayout (new BorderLayout ()); top.add ("Centre", resultText); getContentPane (). setLayout (new BorderLayout (3, 5)); getContentPane (). Add ("North", en haut); getContentPane (). Add ("Centre", panneau1); for (int i = 0; i <keys.length; i ++) {keys [i] .addactionListener (this); } pour (int i = 0; i <Command.length; i ++) {commandes [i] .AdDactionListener (this); }} public void ActionPerformed (ActionEvent e) {String Label = e.getActionCommand (); if (label.equals (commande [0])) {handlebackspace (); } else if (label.equals (commande [1])) {resultText.SeTTEXT ("0"); } else if (label.equals (commande [2])) {handlec (); } else if ("0123456789.". indexof (label)> = 0) {handleNumber (label); } else {handleoperator (label); }} private void handleBackSpace () {String text = resultText.getText (); int i = text.length (); if (i> 0) {text = text.substring (0, i - 1); if (text.length () == 0) {resultText.seTText ("0"); FirstDigit = true; opérateur = "="; } else {resultText.SeTText (texte); }}} private void handleNumber (string key) {if (firstDigit) {resultText.SeTText (key); } else if ((key.equals (".")) && (resultText.getText (). indexof (".") <0)) {resultText.SeTTExt (resultText.getText () + "."); } else if (! key.equals (".")) {resultText.SeTTExt (resultText.getText () + key); } firstDigit = false; } private void handlec () {resultText.setText ("0"); FirstDigit = true; opérateur = "="; } private void handleoperator (string key) {if (operator.equals ("/")) {if (getNumberFromText () == 0.0) {operatorValidflag = false; resultText.setText ("Le divorce ne peut pas être nul"); } else {resultNum / = getNumberFromText (); }} else if (operator.equals ("1 / x")) {if (resultNum == 0.0) {operatorValidflag = false; resultText.setText ("zéro n'a pas de réciproque"); } else {resultNum = 1 / resultNum; }} else if (operator.equals ("+")) {resultNum + = getNumberFromText (); } else if (operator.equals ("-")) {resultNum - = getNumberFromText (); } else if (operator.equals ("*")) {resultNum * = getNumberFromText (); } else if (operator.equals ("*")) {resultNum * = getNumberFromText (); } else if (operator.equals ("*")) {resultNum * = getNumberFromText (); } else if (operator.equals ("*")) {resultNum * = getNumberFromText (); } else if (operator.equals ("sqrt")) {resultNum = math.sqrt (resultNum); } else if (operator.equals ("%")) {resultNum = resultNum / 100; } else if (operator.equals ("+/-")) {resultNum = resultNum * (-1); } else if (operator.equals ("=")) {resultNum = getNumberFromText (); } if (OperateValidFlag) {long t1; double t2; t1 = (long) résultatnum; t2 = resultNum - t1; if (t2 == 0) {resultText.SeTText (String.ValueOf (t1)); } else {resultText.SeTText (string.valueof (resultNum)); }} opérateur = key; FirstDigit = true; OperateValidFlag = true; } privé double getNumberFromText () {double résultat = 0; try {result = double.valueof (resultText.GetText ()). DoubleValue (); } catch (NumberFormatexception e) {} return result; } public static void main (String args []) {calculatrice calcul1 = new calculator (); calculer1.setVisible (true); calcul1.setDefaultCloseOperation (jframe.exit_on_close); }}Effet de course:
PS: Voici quelques outils de calcul à référence à:
Outil de calcul de la solution de fonction unary en ligne (EQ):
http://tools.vevb.com/jisuanqi/equ_jisuanqi
Calculatrice scientifique en ligne use_advanced calculator calculateur en ligne:
http://tools.vevb.com/jisuanqi/jsqkeexue
Calculatrice en ligne_standard Calculatrice:
http://tools.vevb.com/jisuanqi/jsq
Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.