Hannibal Smith
Jumbo Frame
- Registriert
- Apr. 2015
- Beiträge
- 1.191
System.out.printLn("Hallo alles zusammen. Ich bins mal wieder");
Ich bin gerade dabei, einen Taschenrechner als GUI zu programmieren. Ich habe alles soweit zusammen, dass ich oben im Display die eingetippten zahlen und rechenoperatoren sehe (string) aber es berechnet noch nix. Nun hab ich mir gedacht, wenn ich beim JButton Ergebnis per "double.parseDouble(string)" den string in ein double umwandle rechnet er das aus ... wird wohl aber nicht gehen weil die Operatoren dabei stehen. Nun brauche ich eure Tipps, wie ich am besten den string berechnen kann. Punkt vor Strich ist erstmal unwichtig.
Mir spuckt er dann aus :
Compiliere "C:\Users\Johannes\Desktop\Johannes\Schule\(LF 6) Programmieren\Java Selbstlernen\TaschenrechnerGUI.java" mit Java-Compiler
TaschenrechnerGUI.java:321:21: error: incompatible types: double cannot be converted to String
Ausgabe.setText(Ergebnis);
^
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error
Ich bin gerade dabei, einen Taschenrechner als GUI zu programmieren. Ich habe alles soweit zusammen, dass ich oben im Display die eingetippten zahlen und rechenoperatoren sehe (string) aber es berechnet noch nix. Nun hab ich mir gedacht, wenn ich beim JButton Ergebnis per "double.parseDouble(string)" den string in ein double umwandle rechnet er das aus ... wird wohl aber nicht gehen weil die Operatoren dabei stehen. Nun brauche ich eure Tipps, wie ich am besten den string berechnen kann. Punkt vor Strich ist erstmal unwichtig.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.Hashtable;
import java.awt.font.TextAttribute;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
import Prog1Tools.IOTools;
/**
*
* Taschenrechner GUI
*
* @version 1.0 vom 18.01.2018
* @author
*/
public class TaschenrechnerGUI extends JFrame {
// Anfang Attribute
private JTextArea TextArea1 = new JTextArea("12");
private JLabel lTaschenrechner = new JLabel();
private JButton eins = new JButton();
private JButton zwei = new JButton();
private JButton drei = new JButton();
private JButton vier = new JButton();
private JButton fuenf = new JButton();
private JButton sechs = new JButton();
private JButton sieben = new JButton();
private JButton acht = new JButton();
private JButton neun = new JButton();
private JButton mal = new JButton();
private JButton plus = new JButton();
private JButton minus = new JButton();
private JButton durch = new JButton();
private JButton gleich = new JButton();
private JButton zero = new JButton();
private JLabel Ausgabe = new JLabel();
// Ende Attribute
ScriptEngineManager mgr= new ScriptEngineManager();
ScriptEngine engine= mgr.getEngineByName("JavaScript");
String foo=("");
public TaschenrechnerGUI() {
// Frame-Initialisierung
super();
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 310;
int frameHeight = 319;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setTitle("TaschenrechnerGUI");
setResizable(true);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
lTaschenrechner.setBounds(32, 0, 227, 27);
lTaschenrechner.setText("Taschenrechner");
Hashtable<TextAttribute, Object> lTaschenrechner_map = new Hashtable<TextAttribute, Object>();
lTaschenrechner_map.put(TextAttribute.FAMILY, "Arial Black");
lTaschenrechner_map.put(TextAttribute.SIZE, 22);
lTaschenrechner_map.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
lTaschenrechner.setFont(new Font(lTaschenrechner_map));
lTaschenrechner.setForeground(Color.BLACK);
lTaschenrechner.setOpaque(false);
lTaschenrechner.setHorizontalAlignment(SwingConstants.CENTER);
lTaschenrechner.setHorizontalTextPosition(SwingConstants.CENTER);
cp.add(lTaschenrechner);
eins.setBounds(8, 160, 33, 33);
eins.setText("1");
eins.setMargin(new Insets(2, 2, 2, 2));
eins.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
eins_ActionPerformed(evt);
}
});
cp.add(eins);
zwei.setBounds(48, 160, 33, 33);
zwei.setText("2");
zwei.setMargin(new Insets(2, 2, 2, 2));
zwei.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
zwei_ActionPerformed(evt);
}
});
cp.add(zwei);
drei.setBounds(88, 160, 33, 33);
drei.setText("3");
drei.setMargin(new Insets(2, 2, 2, 2));
drei.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
drei_ActionPerformed(evt);
}
});
cp.add(drei);
vier.setBounds(8, 200, 33, 33);
vier.setText("4");
vier.setMargin(new Insets(2, 2, 2, 2));
vier.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
vier_ActionPerformed(evt);
}
});
cp.add(vier);
fuenf.setBounds(48, 200, 33, 33);
fuenf.setText("5");
fuenf.setMargin(new Insets(2, 2, 2, 2));
fuenf.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
fuenf_ActionPerformed(evt);
}
});
cp.add(fuenf);
sechs.setBounds(88, 200, 33, 33);
sechs.setText("6");
sechs.setMargin(new Insets(2, 2, 2, 2));
sechs.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
sechs_ActionPerformed(evt);
}
});
cp.add(sechs);
sieben.setBounds(8, 240, 33, 33);
sieben.setText("7");
sieben.setMargin(new Insets(2, 2, 2, 2));
sieben.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
sieben_ActionPerformed(evt);
}
});
cp.add(sieben);
acht.setBounds(48, 240, 33, 33);
acht.setText("8");
acht.setMargin(new Insets(2, 2, 2, 2));
acht.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
acht_ActionPerformed(evt);
}
});
cp.add(acht);
neun.setBounds(88, 240, 33, 33);
neun.setText("9");
neun.setMargin(new Insets(2, 2, 2, 2));
neun.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
neun_ActionPerformed(evt);
}
});
cp.add(neun);
mal.setBounds(136, 160, 33, 33);
mal.setText("X");
mal.setMargin(new Insets(2, 2, 2, 2));
mal.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
mal_ActionPerformed(evt);
}
});
cp.add(mal);
plus.setBounds(136, 200, 33, 33);
plus.setText("+");
plus.setMargin(new Insets(2, 2, 2, 2));
plus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
plus_ActionPerformed(evt);
}
});
cp.add(plus);
minus.setBounds(136, 240, 33, 33);
minus.setText("-");
minus.setMargin(new Insets(2, 2, 2, 2));
minus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
minus_ActionPerformed(evt);
}
});
cp.add(minus);
durch.setBounds(136, 120, 33, 33);
durch.setText("/");
durch.setMargin(new Insets(2, 2, 2, 2));
durch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
durch_ActionPerformed(evt);
}
});
cp.add(durch);
gleich.setBounds(48, 120, 73, 33);
gleich.setText("=");
gleich.setMargin(new Insets(2, 2, 2, 2));
gleich.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
gleich_ActionPerformed(evt);
}
});
gleich.setForeground(Color.BLACK);
gleich.setBackground(Color.WHITE);
cp.add(gleich);
zero.setBounds(8, 120, 33, 33);
zero.setText("0");
zero.setMargin(new Insets(2, 2, 2, 2));
zero.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
zero_ActionPerformed(evt);
}
});
zero.setForeground(Color.BLACK);
cp.add(zero);
Ausgabe.setBounds(8, 40, 291, 65);
Ausgabe.setText("");
Ausgabe.setForeground(Color.BLACK);
Ausgabe.setFont(new Font("Arial", Font.BOLD, 28));
cp.add(Ausgabe);
// Ende Komponenten
setVisible(true);
} // end of public TaschenrechnerGUI
// Anfang Methoden
public static void main(String[] args) {
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // Windows Theme
} catch(Exception e) {
}
new TaschenrechnerGUI();
//ScriptEngineManager mgr= new ScriptEngineManager();
//ScriptEngine engine= mgr.getEngineByName("JavaScript");
//String foo=("0");
//System.out.println(engine.eval(foo));
} // end of main
public void eins_ActionPerformed(ActionEvent evt) {
foo = foo.concat("1");
Ausgabe.setText(foo);
} // end of eins_ActionPerformed
public void zwei_ActionPerformed(ActionEvent evt) {
foo = foo.concat("2");
Ausgabe.setText(foo);
} // end of zwei_ActionPerformed
public void drei_ActionPerformed(ActionEvent evt) {
foo = foo.concat("3");
Ausgabe.setText(foo);
} // end of drei_ActionPerformed
public void vier_ActionPerformed(ActionEvent evt) {
foo = foo.concat("4");
Ausgabe.setText(foo);
} // end of vier_ActionPerformed
public void fuenf_ActionPerformed(ActionEvent evt) {
foo = foo.concat("5");
Ausgabe.setText(foo);
} // end of fuenf_ActionPerformed
public void sechs_ActionPerformed(ActionEvent evt) {
foo = foo.concat("6");
Ausgabe.setText(foo);
} // end of sechs_ActionPerformed
public void sieben_ActionPerformed(ActionEvent evt) {
foo = foo.concat("7");
Ausgabe.setText(foo);
} // end of sieben_ActionPerformed
public void acht_ActionPerformed(ActionEvent evt) {
foo = foo.concat("8");
Ausgabe.setText(foo);
} // end of acht_ActionPerformed
public void neun_ActionPerformed(ActionEvent evt) {
foo = foo.concat("9");
Ausgabe.setText(foo);
} // end of neun_ActionPerformed
public void mal_ActionPerformed(ActionEvent evt) {
foo = foo.concat("*");
Ausgabe.setText(foo);
} // end of mal_ActionPerformed
public void plus_ActionPerformed(ActionEvent evt) {
foo = foo.concat("+");
Ausgabe.setText(foo);
} // end of plus_ActionPerformed
public void minus_ActionPerformed(ActionEvent evt) {
foo = foo.concat("-");
Ausgabe.setText(foo);
} // end of minus_ActionPerformed
public void durch_ActionPerformed(ActionEvent evt) {
foo = foo.concat("/");
Ausgabe.setText(foo);
} // end of durch_ActionPerformed
public void gleich_ActionPerformed(ActionEvent evt) {
foo = foo.concat("=");
Ausgabe.setText(foo);
double Ergebnis= Double.parseDouble(foo);
Ausgabe.setText(Ergebnis);
} // end of gleich_ActionPerformed
public void zero_ActionPerformed(ActionEvent evt) {
foo = foo.concat("0");
Ausgabe.setText(foo);
} // end of zero_ActionPerformed
// Ende Methoden
} // end of class TaschenrechnerGUI
Mir spuckt er dann aus :
Compiliere "C:\Users\Johannes\Desktop\Johannes\Schule\(LF 6) Programmieren\Java Selbstlernen\TaschenrechnerGUI.java" mit Java-Compiler
TaschenrechnerGUI.java:321:21: error: incompatible types: double cannot be converted to String
Ausgabe.setText(Ergebnis);
^
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error