if we add a few other things to your code, your code does not work. The things I need to add are event listeners and a menu bar. These become necessary as several internal frames need to be generated and organized in Desktop pane.
I tested your code with some standard code from Sun Java tutorials and other well tested code. I get the same error. I could not post this question on other forums (not jReality) as the question involves knowledge of jReality and jrworkspace.
I put below one of the modifications to the code.
I shall really appreciate your help in this.
Code: Select all
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRootPane;
import MyInternalFrameTests.LinesRectsOvalsJPanel;
import de.jreality.geometry.Primitives;
import de.jreality.plugin.JRViewer;
import de.jreality.plugin.JRViewer.ContentType;
import de.jreality.plugin.basic.Inspector;
import de.jreality.plugin.content.ContentLoader;
import de.jreality.plugin.content.ContentTools;
import de.jtem.jrworkspace.plugin.sidecontainer.template.ShrinkPanelPlugin;
public class InternalFrameTest_jReality2 {
private int index = 0;
public static void main(String[] args) {
InternalFrameTest_jReality2 test = new InternalFrameTest_jReality2();
}
public JRootPane createJRealityObject(){
JRViewer v = new JRViewer();
v.setPropertiesFile("JRViewer.xml");
v.setPropertiesResource(JRViewer.class, "JRViewer.xml");
v.setContent(Primitives.sharedIcosahedron);
v.addBasicUI();
v.registerPlugin(new ContentLoader());
v.registerPlugin(new ContentTools());
v.getPlugin(Inspector.class).setInitialPosition(
ShrinkPanelPlugin.SHRINKER_LEFT);
v.addContentSupport(ContentType.CenteredAndScaled);
v.setShowPanelSlots(true, false, false, false);
JRootPane rootPanel = v.startupLocal();
return rootPanel;
}
public InternalFrameTest_jReality2(){
JFrame f = new JFrame("Internal Frame Test");
final JDesktopPane desktop = new JDesktopPane();
f.setLayout(new GridLayout());
f.add(desktop);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(800, 600);
f.setVisible(true);
JMenuBar bar = new JMenuBar(); // create menu bar
JMenu addMenu = new JMenu( "Add" ); // create Add menu
JMenuItem newFrame = new JMenuItem( "Internal Frame" );
addMenu.add( newFrame ); // add new frame item to Add menu
bar.add( addMenu ); // add Add menu to menu bar
f.setJMenuBar( bar ); // set menu bar for this application
//final JDesktopPane theDesktop = new JDesktopPane(); // create desktop pane
//f.add( desktop ); // add desktop pane to frame
// set up listener for newFrame menu item
newFrame.addActionListener(
new ActionListener() // anonymous inner class
{
// display new internal window
public void actionPerformed( ActionEvent event )
{
JInternalFrame internalFrame1 = new JInternalFrame("Internal Frame" + index);
internalFrame1.setSize(600, 400);
internalFrame1.setOpaque(true);
internalFrame1.setLayout(new GridLayout());
JRootPane rootPanel = createJRealityObject();
internalFrame1.add(rootPanel);
internalFrame1.setResizable(true);
desktop.add(internalFrame1);
internalFrame1.setVisible(true);
index++;
}
});
}
}
Karuna