


So implementieren Sie einen kleinen Taschenrechner mithilfe der Entwicklung einer grafischen Java-GUI-Schnittstelle
1. Entwurfsziele
(1) Hauptfunktionen: einfache binokulare Operationen wie Addition, Subtraktion, Multiplikation und Division sowie monokulare Operationen wie Quadratwurzel und Prozentsatz realisieren
(2) Hilfsfunktionen: per Knopfdruck realisieren. C" Löschen Sie das Textfeld. Die Schaltfläche „←“ implementiert die Rücktaste und löscht das Zeichen ganz rechts im Textfeld Zeilen und 4 Spalten bieten Platz für 20 Tasten. Das Textfeld und das Bedienfeld, das 20 Schaltflächenkomponenten enthält, verwenden die Rahmenlayoutmethode, um sie in der Form BorderLayout.NORTH bzw. der zentralen Position BorderLayout.CENTER anzuordnen.
Legen Sie dann den Textinhalt der 20 Schaltflächen fest: Deklarieren und erstellen Sie eine String-Array: Speichern Sie den Textinhalt auf 20 Schaltflächen, deklarieren und erstellen Sie ein Array vom Typ JButton (oder Button-Typ) und verwenden Sie eine for-Schleife, um den 20 Schaltflächen nacheinander Text hinzuzufügen.
Werfen wir zunächst einen Blick auf den endgültigen Schnittstelleneffekt:
3. FunktionsimplementierungVerwenden des „Delegierten-Ereignisverarbeitungsmodells“ für die Ereignisverarbeitung, um auf Benutzervorgänge zu reagieren. Die Hauptkomponenten, die dieses Mal verwendet werden, sind Schaltflächen und Textfelder, sodass sie als ActionEvent-Klassen klassifiziert werden können. Verwenden Sie die ActionListener-Ereignis-Listener-Schnittstelle, um die actionPerformed-Methode zu implementieren, um auf Ereignisse zu reagieren.
Implementierung von Berechnungsfunktionen: Achten Sie auf die unterschiedliche Verarbeitung von binären Operatoren und unären Operatoren. Der Binäroperator definiert eine Variable zum Speichern des Werts des ersten Operanden und des Werts nach der Binäroperation. Das Ergebnis der Operation wird im Textfeld angezeigt, indem Sie auf „=" klicken. Unärer Operator: Klicken Sie nach Eingabe des Werts auf den Operator, um das Operationsergebnis direkt im Textfeld anzuzeigen. Die Quadratwurzelfunktion wird durch Aufrufen der Methode sqrt() der Math-Klasse implementiert. Die Prozentoperation kann direkt mit 0,01 multipliziert werden, da beispielsweise 12 % = 12 * 0,01 + 0,12 eine Methode zur Implementierung der Berechnung speziell definiert ist Zu diesem Zweck lautet ein Teil des Codes wie folgt:
public void calculate(){ char[]arr=input.getText().toCharArray();//将输入的计算表达式字符串存储在字符数组中便于查找运算符的位置 int i=0;//移动标志变量 while('0'<=arr[i]&&arr[i]<='9'||arr[i]=='.')//去除数字与小数点以确定双目运算符的位置 i++; char operator=arr[i];//将该运算符存储起来 //双目运算 if(operator!='%'&&operator!='√'){ String s=input.getText(),s1,s2;//s1,s2分别存储运算符前后的数值字符串 s1=s.substring(0,i); s2=s.substring(i+1,s.length()); Double left=Double.parseDouble(s1);//将运算符左边的数值字符串转换为浮点数 Double right=Double.parseDouble(s2);//将运算符右边的数值字符串转换为浮点数 //根据不同的运算符进行相应的计算 if(operator=='+')result=left+right; else if(operator=='-')result=left-right; else if(operator=='×')result=left*right; else if(operator=='÷')result=left/right; } //单目运算 else{ String s=input.getText(),s1; s1=s.substring(0,s.length()-1); Double a=Double.parseDouble(s1); if(operator=='%'){ result=0.01*a; } else if(operator=='√'){ result=Math.sqrt(a); } } }
Codeidee: Nehmen Sie den Operationsausdruck 8+5 als Beispiel. Rufen Sie zunächst die vom Benutzer über die Schaltflächenkomponente eingegebene Berechnungsausdruckszeichenfolge „8 + 5“ aus der Textfeldeingabe ab und konvertieren Sie sie zunächst in ein Zeichenarray. Wenn es sich um eine binäre Operation handelt, ermitteln Sie zunächst die Position des Operators über eine Schleife , und verwenden Sie dann StringTokenizer Die Zeichensegmentierungs- und Bearbeitungsmethode substring(a,b) in der Klasse erhält die Zeichenfolge, deren Index bei a beginnt und mit b-1 endet (links geschlossenes und rechts offenes Intervall), und verwendet den Operator as Die Trennlinie zum Teilen der beiden Zeichen wird getrennt, dh die beiden Zeichen „8“ und „5“ werden erhalten, und dann wird die Methode Double.parseDouble() verwendet, um sie in Gleitkommazahlen umzuwandeln Zahlen 8,0 und 5,0, die schließlich je nach Operation bearbeitet werden können. Der Operator führt entsprechende Berechnungen durch und speichert das Ergebnis in der Variablen result. Der unäre Operator ist derselbe, außer dass es nach der Aufteilung nur einen linken Operanden und keinen rechten Operanden gibt.
Die Implementierung der Schaltfläche „C“ zum Löschen des Textfelds: Rufen Sie die Member-Methode setText(““) des Textfeldobjekts auf und setzen Sie sie auf eine leere Zeichenfolge zurück.
Die Implementierung der Schaltfläche „←“: Zuerst abrufen Geben Sie die Textfeldzeichenfolge in die Zeichenfolge ein, rufen Sie dann die Mitgliedsmethode substring () auf, um die verbleibende Teilzeichenfolge mit Ausnahme des letzten Zeichens abzurufen, und legen Sie schließlich die Zeichenfolge als Inhalt des Textfeldobjekts fest. Ein Teil des Codes lautet wie folgt:
String str=input.getText(); if(str.length()>1){ str=str.substring(0,str.length()-1); input.setText(str); } else{ input.setText(""); }
4. Alle Codes
import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.StringTokenizer; public class Calculator extends JFrame implements ActionListener{ JTextField input;//文本框,显示计算结果 JButton []button=new JButton[20];//按钮数组,存放20个按钮组件 JPanel pan=new JPanel(); String name[]={"C","÷", "×", "←","7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "√", "%", "0", ".", "="};//按钮标签数组 double result;//存储双目运算的结果 public Calculator(){ setTitle("模拟计算器—江海大"); pan.setLayout(new GridLayout(5,4));//设置面板pan的布局格式为5行4列的网格布局,存放20个按钮 input=new JTextField(20); input.setText(""); input.setFont(new Font("宋体",Font.BOLD,18)); input.setForeground(Color.BLUE); for(int i=0;i<button.length;i++){ button[i]=new JButton(name[i]); button[i].setFont(new Font("黑体",Font.BOLD,20)); button[i].addActionListener(this);//给每一个按钮注册事件监听器 pan.add(button[i]); } add(input,BorderLayout.NORTH); add(pan,BorderLayout.CENTER); setSize(600,400); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗体 } //动作响应 public void actionPerformed(ActionEvent e){ //如果点击按钮 "C"则触发清空文本框的操作 if(e.getSource()==button[0]){ input.setText(""); } //如果点击按钮"="则调用计算方法并在文本框显示结果 else if(e.getSource()==button[19]){ calculate(); input.setText(""+result);//输出计算结果 } //如果点击"<--"按钮则删去文本框内字符串的末尾字符 else if(e.getSource()==button[3]){ String str=input.getText(); if(str.length()>1){ str=str.substring(0,str.length()-1); input.setText(str); } else{ input.setText(""); } } //以字符串拼接的方式将点击的按钮的标签拼接起来,成为一个运算表达式字符串 else{ input.setText(input.getText()+e.getActionCommand()); } } public void calculate(){ char[]arr=input.getText().toCharArray();//将输入的计算表达式字符串存储在字符数组中便于查找运算符的位置 int i=0;//移动标志变量 while('0'<=arr[i]&&arr[i]<='9'||arr[i]=='.')//去除数字与小数点以确定双目运算符的位置 i++; char operator=arr[i];//将该运算符存储起来 //双目运算 if(operator!='%'&&operator!='√'){ String s=input.getText(),s1,s2;//s1,s2分别存储运算符前后的数值字符串 s1=s.substring(0,i); s2=s.substring(i+1,s.length()); Double left=Double.parseDouble(s1);//将运算符左边的数值字符串转换为浮点数 Double right=Double.parseDouble(s2);//将运算符右边的数值字符串转换为浮点数 //根据不同的运算符进行相应的计算 if(operator=='+')result=left+right; else if(operator=='-')result=left-right; else if(operator=='×')result=left*right; else if(operator=='÷')result=left/right; } //单目运算 else{ String s=input.getText(),s1; s1=s.substring(0,s.length()-1); Double a=Double.parseDouble(s1); if(operator=='%'){ result=0.01*a; } else if(operator=='√'){ result=Math.sqrt(a); } } } public static void main(String[]args){ new Calculator(); } }
5. Funktionstest
Addition
Quadratwurzel
Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen kleinen Taschenrechner mithilfe der Entwicklung einer grafischen Java-GUI-Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.
