forked from IF-LK-2020/rechenmaschine
GUI fertig
This commit is contained in:
45
GUI.form
Normal file
45
GUI.form
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="GUI">
|
||||||
|
<grid id="27dc6" binding="panelMain" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
|
<constraints>
|
||||||
|
<xy x="20" y="20" width="500" height="400"/>
|
||||||
|
</constraints>
|
||||||
|
<properties/>
|
||||||
|
<border type="none"/>
|
||||||
|
<children>
|
||||||
|
<component id="36781" class="javax.swing.JTextField" binding="textFieldRechenterm">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
|
||||||
|
<preferred-size width="150" height="-1"/>
|
||||||
|
</grid>
|
||||||
|
</constraints>
|
||||||
|
<properties/>
|
||||||
|
</component>
|
||||||
|
<component id="6de4a" class="javax.swing.JButton" binding="buttonBerechnen">
|
||||||
|
<constraints>
|
||||||
|
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Berechnen"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<component id="4aaff" class="javax.swing.JLabel" binding="labelGibRechentermEin">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Bitte gib einen Rechenterm ein."/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<component id="d95b1" class="javax.swing.JLabel" binding="labelErgebnis">
|
||||||
|
<constraints>
|
||||||
|
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Ergebnis"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
</children>
|
||||||
|
</grid>
|
||||||
|
</form>
|
||||||
36
GUI.java
Normal file
36
GUI.java
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
|
public class GUI extends JFrame {
|
||||||
|
private JPanel panelMain;
|
||||||
|
private JTextField textFieldRechenterm;
|
||||||
|
private JLabel labelGibRechentermEin;
|
||||||
|
private JButton buttonBerechnen;
|
||||||
|
private JLabel labelErgebnis;
|
||||||
|
|
||||||
|
public GUI(String title){
|
||||||
|
super(title);
|
||||||
|
|
||||||
|
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
this.setContentPane(panelMain);
|
||||||
|
this.pack();
|
||||||
|
buttonBerechnen.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
//TODO: Text vom Text field zu Eingabe übergeben
|
||||||
|
Rechenmaschine rechner = new Rechenmaschine(textFieldRechenterm.getText());
|
||||||
|
labelErgebnis.setText("Das Ergebnis ist: "+rechner.getResult());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
JFrame frame = new GUI("Rechenterme");
|
||||||
|
frame.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createUIComponents() {
|
||||||
|
// TODO: place custom component creation code here
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,26 +5,17 @@ import java.text.DecimalFormat;
|
|||||||
*/
|
*/
|
||||||
public class Rechenmaschine {
|
public class Rechenmaschine {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
new Rechenmaschine();
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<Token> tokenlist;
|
private List<Token> tokenlist;
|
||||||
|
|
||||||
private String fehler;
|
private String fehler;
|
||||||
|
|
||||||
private double result;
|
private String result;
|
||||||
|
|
||||||
private int klammern;
|
private int klammern;
|
||||||
|
|
||||||
public Rechenmaschine() {
|
public Rechenmaschine(String eingabe) {
|
||||||
tokenlist = new List<>();
|
tokenlist = new List<>();
|
||||||
|
|
||||||
Scanner input = new Scanner(System.in);
|
|
||||||
System.out.println("Gib einen Term ein und bestätige mit ENTER: ");
|
|
||||||
String eingabe = input.nextLine();
|
|
||||||
input.close();
|
|
||||||
|
|
||||||
if (!scanne(eingabe)) {
|
if (!scanne(eingabe)) {
|
||||||
System.out.println("Fehler bei der lexikalischen Analyse:");
|
System.out.println("Fehler bei der lexikalischen Analyse:");
|
||||||
System.out.println(fehler);
|
System.out.println(fehler);
|
||||||
@@ -47,6 +38,7 @@ public class Rechenmaschine {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean scanne(String pEingabe) {
|
public boolean scanne(String pEingabe) {
|
||||||
char[] eingabe = pEingabe.toCharArray();
|
char[] eingabe = pEingabe.toCharArray();
|
||||||
klammern = 0;
|
klammern = 0;
|
||||||
@@ -336,7 +328,6 @@ public class Rechenmaschine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
if (currentToken.getType().equals("OPERATOR")) {
|
if (currentToken.getType().equals("OPERATOR")) {
|
||||||
state = 0;
|
state = 0;
|
||||||
@@ -475,6 +466,7 @@ public class Rechenmaschine {
|
|||||||
pList.next();
|
pList.next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private double mehrereKlammern(List<Token> pList) {
|
private double mehrereKlammern(List<Token> pList) {
|
||||||
List<Token> newTokenlist = new List<Token>();
|
List<Token> newTokenlist = new List<Token>();
|
||||||
double berechnet = 0;
|
double berechnet = 0;
|
||||||
@@ -486,7 +478,6 @@ public class Rechenmaschine {
|
|||||||
while (!pList.getContent().getToken().equals(")")) {
|
while (!pList.getContent().getToken().equals(")")) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (pList.hasAccess()) {
|
if (pList.hasAccess()) {
|
||||||
//wenn current ( ist dann wird diese methode nochmal ab current ausgeführt und anschließend
|
//wenn current ( ist dann wird diese methode nochmal ab current ausgeführt und anschließend
|
||||||
// das ergebnis in newTokenlist eingefügt
|
// das ergebnis in newTokenlist eingefügt
|
||||||
@@ -537,7 +528,10 @@ public class Rechenmaschine {
|
|||||||
double result = berechne(tokenlist);
|
double result = berechne(tokenlist);
|
||||||
DecimalFormat format = new DecimalFormat("#,##0.####");
|
DecimalFormat format = new DecimalFormat("#,##0.####");
|
||||||
String resultString = format.format(result);
|
String resultString = format.format(result);
|
||||||
System.out.println("Ergebnis der Ausführung: " + resultString);
|
this.result= resultString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getResult() {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user