The Java Interaction Mechanism in Scilab (JIMS) provides a native-level
interface between the two Virtual Machines.
It gives Scilab programs
full access to Java class libraries, allowing them to load and manage
complex and advanced Java objects using Scilab's classical data types.
This toolbox is released under CeCILL license:
http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
A first example to display a puffin in a JFrame
//Swing test
jimport java.awt.BorderLayout;
jimport java.net.URL;
jimport javax.imageio.ImageIO;
jimport javax.swing.ImageIcon;
jimport javax.swing.JFrame;
jimport javax.swing.JLabel;
url = URL.new("http://www.scilab.org/var/ezwebin_site/storage/images/media/images/puffin/1948-1-eng-GB/puffin.png");
image = ImageIO.read(url);
frame = JFrame.new();
icon = ImageIcon.new(image);
label = JLabel.new(icon);
pane = frame.getContentPane();
pane.add(label, BorderLayout.CENTER);
frame.pack();
frame.setVisible(%T);
jremove frame icon label pane url image BorderLayout URL ImageIO ImageIcon JFrame JLabel
The command jimport java.net.URL will create a variable named URL on the stack, to avoid conflicts with a variable already named URL, you could use the syntax:
myurlclass = jimport("java.net.URL", %f);
url = myurlclass.new("http://www.scilab.org");
Create a new instance or invoke a method can be done with the commands jnewInstance and jinvoke:
url = jnewInstance("java.net.URL", "http://www.scilab.org");
forge = jnewInstance(myurlclass, "http://forge.scilab.org");
protocol = jinvoke(url, "getProtocol")
eq = jinvoke(url, "equals", forge)


