Witam,
Chciał bym zapytać czy w ogóle jest możliwe użycie zmiennej String która będzie wprowadzona przez użytkownika (działania matematyczne), a następnie za pomocą skryptu te działanie zostanie obliczone i wyświetlone w odpowiednim oknie.
To co zrobiłem to:
Utworzyłem UI w którym są przyciski ( większość przycisków wpisuje w pole tekstowe "input" działania).
Przycisk "wykonaj" który zaczyna wykonywać funkcję i wyświetlić ją w innym polu tekstowym "output".
to mam w głównym pliku:
private void jButton24ActionPerformed(java.awt.event.ActionEvent evt) {
licz wyniku = new licz();
String dana = String.valueOf(input.getText());
licz.licz(dana);
output.setText(wyniku.liczenie(result));
oraz funkcja w pliku licz:
import static java.lang.Math.*;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
public class licz extends kalk{
public static void licz(String dane) throws Exception{
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine scriptEngine = sem.getEngineByName("JavaScript");
String expr = dane;
System.out.println(scriptEngine.eval(expr));
}
}
Męczę to już dwa dni i non stop coś nie pasuje.
Ten kod z ostatniej funkcji znalazłem w internecie i próbowałem dopasować. Normalnie uruchomiony działa:
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
public class expressionEvaluate{
public static void main(String[] args) throws Exception{
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine scriptEngine = sem.getEngineByName("JavaScript");
String expr = "1*3+5";
System.out.println(scriptEngine.eval(expr));
}
}
Jeśli jest potrzeba to prześlę cały kod tylko że tam nie ma nic nadzwyczajnego oprócz definicji w GUI.
Pozdrawiam