Wenn ich auf einem JInternalFrame ein Canvas platziere, ist dieses (das Canvas, incht das komplette JInternalFrame) immer im Vordergrund, selbst wenn ich andere JInternalFrames darüber ziehe.
Andere Fenster können den Canvas verdecken, bloß InternalFrames der gleichen Anwendung bleiben schlichtweg immer dahinter versteckt, wisst ihr, wie ich das lösen kann?
Ich schicke euch mal nen Testcode zum "nachempfinden"
HauptFrame.java
JInternalTest.java
CanvasTest.java
Starter.java
Andere Fenster können den Canvas verdecken, bloß InternalFrames der gleichen Anwendung bleiben schlichtweg immer dahinter versteckt, wisst ihr, wie ich das lösen kann?
Ich schicke euch mal nen Testcode zum "nachempfinden"
HauptFrame.java
Code:
import javax.swing.*;
public class HauptFrame extends JFrame {
JDesktopPane jdp;
public HauptFrame() {
super("MainFrame");
jdp = new JDesktopPane();
jdp.setDesktopManager(new DefaultDesktopManager());
setContentPane(jdp);
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void addChild(JInternalFrame frame) {
frame.setLocation(20, 20);
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jdp.add(frame);
frame.setVisible(true);
}
}
JInternalTest.java
Code:
import javax.swing.*;
public class JInternalTest extends JInternalFrame {
public JInternalTest(int mode) {
super("Jinternal", true, true, true, true);
if (mode == 1) {
CanvasTest ct = new CanvasTest();
this.getContentPane().add(ct);
ct.setVisible(true);
} else {
JButton jb = new JButton("lallalla");
this.getContentPane().add(jb);
jb.setVisible(true);
}
}
}
CanvasTest.java
Code:
import java.awt.*;
public class CanvasTest extends Canvas {
public void paint(Graphics g) {
g.drawLine(20, 20, 100, 20);
}
}
Starter.java
Code:
public class Starter {
public static void main(String[] args) {
HauptFrame hf = new HauptFrame();
hf.addChild(new JInternalTest(1));
hf.addChild(new JInternalTest(2));
}
}