HI I am currently doing my final year project and I need to build an algorithm visualization tool(with user defined algorithm animation). The user defined animation takes place as follows:
1. The user can open a text editor in the GUI and type his/her user-defined algo in java
2. When the user clicks the run menu item, I am using the Java Compiler API to compile the file the user saved.
I successfully animated more than one user-defined algorithm.
userDefined.java:
public class userDefined
{
public static void main(String [] args)
{
int [] numArr = {1,3,1,-1,5,-5,0,7,12,-30};
myArray myArray = new myArray(numArr);
Tool.add(myArray);
int min;
for (int pos=0; pos<myArray.length()-1; pos++)
{
min = pos;
for (int i=pos+1; i<myArray.length(); i++)
{
if (myArray.get(i) < myArray.get(min))
{
min = i;
}
}
myArray.swap(min,pos);
}
}
}
myArray is a class that the tool provides for the user to use in the algo he/she types.
This is a portion of the GUI code:
private void jMenuItem10ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(EDITOR_IN_USE)
{
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
if(compiler.run(null, null, null, "userDefined.java") != 0) {
System.err.println("Could not compile.");
System.exit(0);
}
try {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("java "+"userDefined");
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
System.out.println(line);
}
} catch(Exception e) {
System.out.println(e.toString());
e.printStackTrace();
}
}
}
The problem I am having is that if I run the project in Netbeans and then use the tool to compile and run the user-defined algo it doesn't work unless I stop the run and then copy paste the Tool and myArray classes at the same level as "userDefined.java".
i.e userDefined.java is in C:\Users\user\Documents\NetBeansProjects\My_Final_Year_Project
I am having to copy myArray and Tool from C:\Users\user\Documents\NetBeansProjects\My_Final_Year_Project\build\classes and paste them in C:\Users\user\Documents\NetBeansProjects\My_Final_Year_Project to get it to work properly.
I try saving userDefined in C:\Users\user\Documents\NetBeansProjects\My_Final_Year_Project\src but agian its not working.
Its only working when I run the project once then close the tool and move myArray and Tool classes to C:\Users\user\Documents\NetBeansProjects\My_Final_Year_Project and then rerun the project.
Please I really need help with this...Thanks!
p.s also the tool(algorithm visualization tool)is represented by my GUI class not Tool class; Tool class is just a class that contains a static frame/panel for use in the user-defined algo.
Again it works but only if I move the classes and make a second run of the project.
0814519