Noch ne kleine Beanshell Frage

Status
Nicht offen für weitere Antworten.

apfelbacke

Mitglied
wie kann ich auf eine vom Interpreter errechnete Variable zugreifen?
habs mal so probiert: (ausschnitt)
Code:
   public void setVariables(){
		
		for(int i=0;i<=varAnz-1;i++){
			try {  interpreter.set(p.varNames[i],p.varValues[i]);}
			catch (EvalError e) { e.printStackTrace();} 
							}
			}
	public void actionPerformed(ActionEvent e){
		
		if(e.getSource()==nameText[0]){
			String s0=new String("x0 ="+nameText[0].getText());
			try{
				setVariables();
				interpreter.eval(s0);
				System.out.println ("startwert für "+p.varNames[0]+" = ");
				interpreter.eval("System.out.println(x0)"); //Das Funktioniert bis dahin
				interpreter.eval("input.check[0].setText(x0)"); //Das muss noch klappen
				}
			catch (EvalError ev) { ev.printStackTrace();}		
			}

Also ich weiss nicht wie ich auf die im Interpreter errechnete Variable x0 zugreifen kann.
Ich würde sie gern als text für das label check[0] in der Klasse input anzeigen,
derselben klasse in der ich auch den interpreter deklariere,
sowie Ihren double - Wert in der varialen varValues[0] in der klasse p speichern.
Die fehlermaldung betr. der Zeile 18 lautet:

Class or variable not found:
input.check : at Line: 1 : in file: inline evaluation of: ``input.check[0].setText(x0);'' : input .check



Danke für die hilfe, Bleiglanz du kriegst mal n bier :D
 
S

stev.glasow

Gast
Wäre ganz interessant gewesen wie p.varNames und p.varValues aussehen.
hast du dort 'input' gesetzt?
 

apfelbacke

Mitglied
also da gibt es die parameter klasse :
Code:
public class param{
	
	public int varAnz;
	public String[]varNames;
	public String[]varFunctions;
	public double[]varValues;
}
deren variablen in der klasse inputdialog initialisiert werden, aus der auch der vorherige code stammt,
und in der der interpreter instantiert wird, und die test klasse
Code:
public class testmain  {
	
	
	public static void main (String[] args){
		
			param p=new param();
			Inputdialog input=new Inputdialog(p);
			
	}
	
}
in der alles testweise gestartet wird.Die variable check[] in input ist public.
wenn ich statt interpreter.eval("input.check[0].setText(x0)");
interpreter.eval("check[0].setText(x0)"); schreibe, bekomme ich die except:

Sourced file: inline evaluation of: ``check[0].setText(x0);'' : Not an array : at Line: 1 : in file: inline evaluation of: ``check[0].setText(x0);'' : [ 0 ]

der interpreter scheint also check[0] nicht zu kennen

hilft dir das irgentwie weiter?

gruss johannes
 
S

stev.glasow

Gast
Wie sehen denn die Arrays varNames und varValues aus? (welchen Inhalt haben sie?)
Irgendwo musst du ja :
interpreter.set("input", input);
machen, damit der Interpreter die Variable kennt kennt.

wie kann ich auf eine vom Interpreter errechnete Variable zugreifen?
Über:
Typ var = (Typ)interpreter.get("varname");
 

apfelbacke

Mitglied
Danke, die letzte Zeile war genau das was ich brauche!
Leider geht es noch nicht ganz:

erstens scheint dein befehl nur Strings zurückliefern zu können,

denn schon beim compilieren versagt die double version.

Xinox Software\math app\src\Inputdialog.java:393: inconvertible types
found : java.lang.Object
required: double
p.varValues[0] = (double)interpreter.get("x0");


zweitens gibt es noch eine exception bei meinem vorläufigen code
Code:
public void actionPerformed(ActionEvent e){
		
if(e.getSource()==nameText[0]){
        String s0=new String("x0 ="+nameText[0].getText()); //eingegebene formel
	try{
	    setVariables();
	    interpreter.eval(s0); //berechne formel
	    String ss0=new String();
	    ss0=(String)interpreter.get("x0"); //liefer errechneten wert
	    check[0].setText("function accepted!  start value:= "+ss0); 
	    p.varValues[0] = Double.parseDouble((String)interpreter.get ("x0"));//speicher startwert
	    System.out.println (p.varValues[0]);
				}
	catch (EvalError ev) { ev.printStackTrace();
	    example1.setText("WRONG INPUT");}		
			}
^

und zwar bekomme ich immer eine
java.lang.ClassCastException
at Inputdialog$JtListener.actionPerformed(Inputdialog.java:389)

(die zeile in der ss0=(String)interpreter.get("x0"); steht)

Was ist das? Wiese funzt der schöne einfache Befehl von dir nicht??

gruss jo
 
S

stev.glasow

Gast
erstens scheint dein befehl nur Strings zurückliefern zu können,
denn schon beim compilieren versagt die double version.
Xinox Software\math app\src\Inputdialog.java:393: inconvertible types
found : java.lang.Object
required: double
p.varValues[0] = (double)interpreter.get("x0");
em, Objekte kann man nicht zu primitiven Datentypen casten. (Umweg über Wrapperklasse gehen)

und zwar bekomme ich immer eine
java.lang.ClassCastException
at Inputdialog$JtListener.actionPerformed(Inputdialog.java:389)
Wenn in s0 "x0 = 1 + 5" steht, dann ist x0 kein String.
 

apfelbacke

Mitglied
Also ich habs jetzt hinbekommen.
Auf den im Interpreter berechneten wert x0 greife ich per

ss0=interpreter.get("x0").toString();

zu, das zurückgelieferte Objekt wird gleich zu einem String umgewandelt,
welchen ich dann weiter umwandeln kann zB

p.varValues[0] = Double.parseDouble(ss0);


Mir war halt nicht klar nach der vorletzten Antwort, das der Interpreter nur objekte zurückliefern kann
:bae:
 
S

stev.glasow

Gast
Und wieso der Umweg über String?
Die Methode liefert dir nen Object vom Typ Double, vermute ich zu mindest.

Code:
p.varValues[0] = ((Double)interpreter.get("x0")).doubleValue(); 

Oder Java 1.5:
p.varValues[0] = (Double)interpreter.get("x0");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
S Ist das noch Insertionsort? Java Basics - Anfänger-Themen 3
O Warum will die MEthode noch am Ende einr eturn Java Basics - Anfänger-Themen 10
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
CptK Vererbung Attributtyp in Super-Klasse noch nicht festlegen Java Basics - Anfänger-Themen 1
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
M Untersuchen ob ein Graph nach entfernen einer Kante immer noch zusammenhängend ist Java Basics - Anfänger-Themen 70
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
J Zweck von Interfaces immer noch nicht klar Java Basics - Anfänger-Themen 3
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
P Cäsear verschlüsselung irgendwas passt noch nicht Java Basics - Anfänger-Themen 2
B java.util.Date noch zeitgemäß? Java Basics - Anfänger-Themen 6
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
S Noch eine Frage zur Rekursion... Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
M Variable noch erstellen oder lieber so? Java Basics - Anfänger-Themen 1
V Bin eigentlich noch VOR dem Anfang .... Java Basics - Anfänger-Themen 9
T Anzeige, wie lange es noch dauert bis ein File gesendet ist. Java Basics - Anfänger-Themen 2
A Wie kann ich mein Programm noch effizienter machen? Java Basics - Anfänger-Themen 1
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
M Noch immer Probleme mit exec Java Basics - Anfänger-Themen 15
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
P Geht dieser Code noch einfacher? Java Basics - Anfänger-Themen 16
I fertige xml-datein in eine noch aufzubauende xml-datei einfügen Java Basics - Anfänger-Themen 4
M Java von kopf bis Fuß noch zeitgemäß ? Java Basics - Anfänger-Themen 18
S noch ein ArrayIndexOutOfBoundsException Fehler Java Basics - Anfänger-Themen 2
Q queue.remove Element trotzdem noch vorhanden. Java Basics - Anfänger-Themen 10
S Musik einfügen funktioniert noch nicht Java Basics - Anfänger-Themen 6
P Noch zum Thema Arrays Java Basics - Anfänger-Themen 13
K Wofür wird heute noch die Stack Klasse in Java genutzt Java Basics - Anfänger-Themen 4
O Noch einmal Methoden Java Basics - Anfänger-Themen 9
T socket.close aber verbindung besteht noch Java Basics - Anfänger-Themen 4
C Threads Auffindung noch laufender Programmteile Java Basics - Anfänger-Themen 2
M Weder Consolenausgabe noch Fehlermeldung! Java Basics - Anfänger-Themen 5
E Prüfen, ob entfernte JVM noch aktiv ist? Java Basics - Anfänger-Themen 5
S ArrayList nur ergänzen wenn Element noch nicht vorhanden Java Basics - Anfänger-Themen 4
J Wie java programm noch schneller machen? Java Basics - Anfänger-Themen 30
C Umsteiger hat noch ein paar Fragen Java Basics - Anfänger-Themen 11
M immer noch usedelimiter Java Basics - Anfänger-Themen 4
M file löschen, streams evtl noch offen Java Basics - Anfänger-Themen 7
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
K Bestehenden Chat modifizieren (noch ein Anfänger!) Java Basics - Anfänger-Themen 7
C Hilfe!!! Ich werd noch wahnsinnig... Java Basics - Anfänger-Themen 3
I Module und Testumgebung noch nicht verstanden... Java Basics - Anfänger-Themen 6
G Weder IE noch Firefox zeigen mir Java Applets an Java Basics - Anfänger-Themen 5
K Scrollpane - versteh nur noch Fragezeichen Java Basics - Anfänger-Themen 6
K Alle noch nicht umgedrehte Karten umdrehen ? Java Basics - Anfänger-Themen 2
S @ override + noch was Java Basics - Anfänger-Themen 3
D Kann noch fast nichts, funktioniert auch fast nichts! Java Basics - Anfänger-Themen 8
K Hier noch ein Konstruktor aufbauen Java Basics - Anfänger-Themen 6
G Threads prüfen, ob diese noch laufen. Java Basics - Anfänger-Themen 3
S Wie runden man noch mal auf bestimmte stellen? Java Basics - Anfänger-Themen 8
N Ich habs immer noch nicht hinbekommen :( Java Basics - Anfänger-Themen 3
D noch ein kleines Problem Java Basics - Anfänger-Themen 4
M OOP und ich - irgendwie verträgt sich das noch nicht. Java Basics - Anfänger-Themen 6
F jbutton and noch was^^ Java Basics - Anfänger-Themen 15
R Noch ein paar Anfängerfragen. Java Basics - Anfänger-Themen 4
R Noch eine Frage: Breite des Applets im Browser ermitteln Java Basics - Anfänger-Themen 7
G Array-Länge bei Erzeugung noch unbekannt - wie erzeugen? Java Basics - Anfänger-Themen 12
T Binärbaum - noch ein "klitzekleiner Fehler" Java Basics - Anfänger-Themen 4
P Textdateischreiben, etwas fehlt noch bzw. 1 error kommt Java Basics - Anfänger-Themen 4
L Noch immer Threat-Problem Java Basics - Anfänger-Themen 8
J referenz auf noch nicht erzeugte objekte? Java Basics - Anfänger-Themen 2
J Noch ein Parser Problem Java Basics - Anfänger-Themen 7
M Noch eins: TextFeldArray hinzufügen Java Basics - Anfänger-Themen 7
M Zufallszahlen fertig! aber nice to have noch offen Java Basics - Anfänger-Themen 5
C Abfragen, ob Objekt noch existiert Java Basics - Anfänger-Themen 5
A wieviel platz ist noch frei? Java Basics - Anfänger-Themen 2
J objektorientiert - noch immer nicht begriffen Java Basics - Anfänger-Themen 6
S Testen ob ein Char Array noch nicht belegt ist! Java Basics - Anfänger-Themen 3
M Testen ob ein Sample noch abgespielt wird Java Basics - Anfänger-Themen 6
N Mittelwert (fast fertig, nur noch 2 fehler ;-) ) Java Basics - Anfänger-Themen 14
N Und noch eine Frage über getRuntime() Java Basics - Anfänger-Themen 4
D Programm läuft - trotzdem noch ein Fehler drin. Java Basics - Anfänger-Themen 21
G Trotz Abfrage immer noch Zahlen doppelt Java Basics - Anfänger-Themen 3
S Noch ungelöst ! Klasse JTable und Klasse Drucken verknüpfen. Java Basics - Anfänger-Themen 8
A Noch ein Anfänger..... Java Basics - Anfänger-Themen 7
M Und noch eine Java Basics - Anfänger-Themen 2
G Fenster maximieren? Suche genutzt geht aber noch nich :( Java Basics - Anfänger-Themen 16
A noch mal bitoperater Java Basics - Anfänger-Themen 2
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
CptK Interface Kleine Kreise in großem Kreis anordnen Java Basics - Anfänger-Themen 3
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
S Kleine Frage zu Threads Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben