Hallo,
mit der Forensuche habe ich hierzu keine Lösung gefunden:
Ich habe ein JSplitPane mit einem JTree in einem JScrollPane und einem JDesktopPane.
Nach dieser Meldung zu Urteilen ist das Problem, dass ich ein Fenster nicht zu einem JScrollpane hunzufügen kann:
Wenn ich das JScrollPane aber zu einem JDesktopPane mache, geht das auch nicht:
Wie kann ich meine InternalFrames in dieses JSplitPane stecken?
MfG
DeeDee0815
mit der Forensuche habe ich hierzu keine Lösung gefunden:
Ich habe ein JSplitPane mit einem JTree in einem JScrollPane und einem JDesktopPane.
Code:
JScrollPane Tree = new JScrollPane(new Tree());
JScrollPane Workspace = new JScrollPane(new Workspace());
Tree.setPreferredSize(new Dimension(200, 400));
MainFrame.add(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, Tree, Workspace), BorderLayout.CENTER);
Code:
import javax.swing.DefaultDesktopManager;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
class Workspace
extends JFrame
{
private static final long serialVersionUID = 1L;
public Workspace()
{
DesktopFrame desktopframe = new DesktopFrame();
desktopframe.addChild(new ChildFrame("Test"), 0, 0, 250, 250);
add(desktopframe);
}
}
class DesktopFrame
extends JFrame
{
private static final long serialVersionUID = 1L;
private JDesktopPane desktoppane;
public DesktopFrame()
{
this.desktoppane = new JDesktopPane();
desktoppane.setDesktopManager(new DefaultDesktopManager());
setContentPane(desktoppane);
}
public void addChild(JInternalFrame child, int x, int y, int w, int h)
{
child.setLocation(x, y);
child.setSize(w, h);
child.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
desktoppane.add(child);
child.setVisible(true);
}
}
class ChildFrame
extends JInternalFrame
{
private static final long serialVersionUID = 1L;
public ChildFrame(String title)
{
super(title, true, true);
setIconifiable(true);
setMaximizable(true);
}
}
Nach dieser Meldung zu Urteilen ist das Problem, dass ich ein Fenster nicht zu einem JScrollpane hunzufügen kann:
Code:
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.addImpl(Container.java:1022)
at java.awt.Container.add(Container.java:935)
at javax.swing.JFrame.addImpl(JFrame.java:545)
at java.awt.Container.add(Container.java:352)
at Workspace.<init>(Workspace.java:15)
at Main.<init>(Main.java:66)
at Main.main(Main.java:23)
Wenn ich das JScrollPane aber zu einem JDesktopPane mache, geht das auch nicht:
Code:
JScrollPane Tree = new JScrollPane(new Tree());
JDesktopPane Workspace = new JDesktopPane(new Workspace());
Tree.setPreferredSize(new Dimension(200, 400));
MainFrame.add(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, Tree, Workspace), BorderLayout.CENTER);
Wie kann ich meine InternalFrames in dieses JSplitPane stecken?
MfG
DeeDee0815