Schreiben Sie eine Anwendung, die einen Taschenrechner simuliert, indem Sie ein Bedienfeld- und Rasterlayout verwenden und ein Textfeld, 10 Zahlentasten (0–9), 4 Additions-, Subtraktions-, Multiplikations- und Divisionstasten, eine Gleichheitszeichentaste, eine Löschtaste und ein Quadrat hinzufügen Die Root-Taste, eine Rücktaste, erfordert die Anzeige der Berechnungsformel und der Ergebnisse im Textfeld. Der Effekt ist wie in der Abbildung unten dargestellt.
Einfacher Java-Rechnercode:
import javax.swing.*; import java.awt.*; import java.awt.Color; import java.awt.Color; ActionListener { private JPanel p1 = new JPanel(); //Panel erstellen private JPanel p2 = new JTextField(); t1; //Textfeld 1 wird verwendet, um Eingabeinformationen anzuzeigen private JTextField t2; //Textfeld 2 wird verwendet, um Ergebnisinformationen anzuzeigen private JLabel label; //Die auf dem Anzeigebildschirm angezeigte Zeichenfolge; ,y ; //x und y sind beide Operanden int z; //Z steht für den angeklickten Operator 0 steht für „+“, 1 steht für „*“, 3 steht für „/“ privater JButton b[ ] = neu JButton[12]; //Erstelle ein Array mit 12 Schaltflächen private JButton b1,b2,b3,b4,b5,b6,b7,b8; //Arithmetische Funktionsschaltfläche public Ex5_2() { super("Simple Calculator" ); /Fenstername Container c = getContentPane(); //Inhaltsbereichsobjekt erstellen t1 = new JTextField(30); t1.setEditable(false); //Kann nur angezeigt werden, kann nicht bearbeitet werden t2 = new JTextField(30); t2.setEditable(false); //Kann nur angezeigt werden, kann nicht bearbeitet werden label = new JLabel("Willkommen bei Xiaowu Edition-Rechner ^_^o~ Arbeite hart! "); label.setForeground(Color.blue); //Erstelle einen leeren String-Puffer str=new StringBuffer(); p2.add(label); //Füge eine Beschriftung zum Panel hinzu p2.add(t2); //Füge ein Textfeld zum Panel hinzu p2.add(t1); //Füge ein Textfeld zum Panel hinzu p2.setLayout(new GridLayout(4,1 )); //Put Das Panel-Layout besteht aus 4 Zeilen und 1 Spalte for(int i=0;i<10;i++) //Legen Sie Beschriftungen für die Schaltflächen 0~9 im Array fest und registrieren Sie Listener { String s=""+ i; b [i]= neu JButton(s); b[i].addActionListener(this); //Instanziieren Sie jede Schaltfläche b[10]= new JButton("-/+"); = new JButton("/"); b2= new JButton("Back"); b3= new JButton("C"); JButton("+"); b6= new JButton("-"); b8= new JButton("="); ; i<12;i++) { b[i].setForeground(Color.blue } b1.setForeground(Color.red); b5.setForeground(Color.red); b2.setForeground(Color.blue); b6.setForeground(Color.red); .blue); //Zum Panel hinzufügen p1.add(b[7]); p1.add(b[9]); p1.add(b[4]); 6]); p1.add(b3); p1.add(b[1]); p1.add(b5); p1.add(b[0]); p1.add(b[11]); ;p1.add(b8); p1.setLayout(new GridLayout(4,5,5,5)); //Listener registrieren b[10].addActionListener(this); b[11].addActionListener(this); b2.addActionListener(this); b5.addActionListener(this); ) ); b7.addActionListener(this); b8.addActionListener(this); //Das Panel zum Inhaltspanel hinzufügen c.add(p1); c.setLayout(new FlowLayout()); //Setzen Sie das Fenster zum Schließen Aktion setVisible(true); //Auf sichtbar setzen setResizable(false); //Anpassen der Framegröße verbieten setSize(400,300); //Die Hauptmethode implementiert die Erstellung eines Fensters public static void main(String[] args) { Ex5_2 f = new Ex5_2(); } //Button-Ereignisverarbeitung public void actionPerformed(ActionEvent e) { try { if(e.getSource( )==b4) //Wählen Sie „C“ zum Löschen { t1.setText("0"); //Das Textfeld löschen t1.setHorizontalAlignment(JTextField.RIGHT); //den Text rechts ausrichten str.setLength(0); //den String-Puffer löschen, um den Empfang neuer Eingabeoperanden vorzubereiten} else if(e.getSource ()==b[10])//Klicken Sie auf „+/-“, um auszuwählen, ob der Eingabeoperand eine positive oder negative Zahl ist{ x=Double.parseDouble(t1.getText().trim());//Die Trimmfunktion dient zum Entfernen von Leerzeichen in der Zeichenfolge t1.setText(""+(-x)); t1.setHorizontalAlignment(JTextField.RIGHT) ; } else if (e.getSource()==b5)//Klicken Sie auf die Plus-Schaltfläche, um den Wert von x und z zu erhalten und den Wert von y zu löschen{ x=Double.parseDouble(t1.getText().trim()); str.setLength(0); y=0d; } else if(e.getSource()==b7)//Klicken Sie zum Reduzieren Button ruft den Wert von x und z ab und löscht den Wert von y { x=Double.parseDouble(t1.getText().trim()); str.setLength(0); y=0d; z=1; } else if(e.getSource()==b3)//Klicken Sie auf die Multiplikationsschaltfläche, um den Wert von x und z zu erhalten und den Wert von y{ x zu löschen =Double.parseDouble(t1.getText().trim()); str.setLength(0); y=0d; if(e.getSource()==b1)//Klicken Sie auf die Divisionsschaltfläche, um den Wert von x und z zu erhalten und den Wert von y zu löschen{ x=Double.parseDouble(t1.getText().trim()); .setLength(0); y=0d; z=3; } else if(e.getSource()==b8)//Klicken Sie auf die Gleichheitszeichen-Schaltfläche, um das Berechnungsergebnis auszugeben { str.setLength(0); switch(z) { case 0: t1.setText(""+(x+y)); t1.setHorizontalAlignment(JTextField.RIGHT);break; case 1: t1.setText(""+(xy)); setHorizontalAlignment(JTextField.RIGHT);break; Fall 2: t1.setText(""+(x*y)); t1.setHorizontalAlignment(JTextField.RIGHT);break; case 3: t1.setText(""+(x/y)); t1.setHorizontalAlignment(JTextField.RIGHT) ;break; } } else if(e.getSource()==b[11])//Klicken Sie auf die Schaltfläche „.“ um die Dezimalzahl einzugeben { if(t1.getText().trim().indexOf('.')!=-1) // Bestimmen Sie, ob die Zeichenfolge bereits einen Dezimalpunkt enthält { } else //Wenn kein Dezimalpunkt vorhanden ist { if(t1.getText().trim().equals("0"))//Wenn es zunächst angezeigt wird als 0 { t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT); } else if(t1.getText().trim().equals(""))/ /Wenn zunächst leer angezeigt, nichts tun {} else { t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT); } } y=0d; // Finden Sie die Quadratwurzel { x=Double.parseDouble(t1.getText().trim()); if(x<0) { t1.setText("Zahlenformat-Ausnahme"); t1.setHorizontalAlignment(JTextField.RIGHT); t1.setHorizontalAlignment(JTextField.RIGHT); t1.setHorizontalAlignment(JTextField.RIGHT); .setLength(0); y=0d } else { if(e.getSource()==b[0])//Wenn die Zifferntaste „0“ ausgewählt ist { if(t1.getText().trim().equals("0"))//Wenn ja angezeigt Wenn die Bildschirmanzeige Null ist, wird keine Operation ausgeführt {} else t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT); y=Double.parseDouble(t1.getText().trim()); } else if (e.getSource()==b2) //Die Zurück-Taste ist ausgewählt { if(! t1.getText().trim().equals("0"))//Wenn die Anzeige nicht Null anzeigt{ if(str.length()!=1) { t1.setText(str.delete(str.length()-1,str.length()).toString());//Es kann eine String-Out-of-Bounds-Ausnahme ausgelöst werden t1.setHorizontalAlignment(JTextField.RIGHT) ; } else { t1.setText("0"); t1.setHorizontalAlignment(JTextField.RIGHT); } } y=Double.parseDouble(t1.getText().trim()); } else { t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT) ; y=Double.parseDouble(t1.getText().trim()); } } } Catch(NumberFormatException e1){ t1.setText("Number Format Ausnahme"); t1.setHorizontalAlignment(JTextField.RIGHT); } e1){t1.setText("String-Index außerhalb der Grenzen"); t1.setHorizontalAlignment(JTextField.RIGHT);} } }Operationsrendering:
Damit ist die Programmierung eines einfachen Java-Rechners abgeschlossen. Ich hoffe, dieser Artikel kann jeden zum Schreiben von Rechnern inspirieren und Sie können ihn weiterhin verwenden, um die Funktionen des Rechners zu verbessern.