F
FinalbrainXP:finalcoder
Gast
Hi, bin gerade drann, ein Binärensuchbaum-Viewer zu programmieren, doch habe ein wahrscheinliches triviales Problem.
Habe ein Hauptfenster welches, JFrame erbt und die Schnittstelle WindowListener besitzt.
Nun füge ich ein JDesktopPane dem hinzu und dann habe ich folgendes Problem.
So funktioniert alles perfekt und das JDesktopPane passt sich im Bezug auf die größe
dem JFrame an.
Code Auszug!
Aber ich möchte mein Fenster maximiert haben, also schrieb ich folgendes:
Das Problem ist aber nun, dass das JDesktopPane keine größenAngabe erhält, welches es vorher von setSize()
des JFrames bezogen hat.
Ok, dachte ich, dann mache ich halt einen Workarround;
Aber von weeeeegen...warum klappt mein Workaround nicht ?
Der Fehler MUß da an dieser Stelle irgendwo sein, da ich ja, wenn ich manuell mit setSize() die größe ändere
alles perfekt funktioniert! Auch wird winSizeX und winSizeY nur hier benutzt und sonst nirgendswo!!
Weiss da jemand rat ??
Habe ein Hauptfenster welches, JFrame erbt und die Schnittstelle WindowListener besitzt.
Nun füge ich ein JDesktopPane dem hinzu und dann habe ich folgendes Problem.
So funktioniert alles perfekt und das JDesktopPane passt sich im Bezug auf die größe
dem JFrame an.
Code Auszug!
Code:
public class MainWindow extends JFrame implements WindowListener
{
private JDesktopPane desktop = null;
private int winSizeX = 800;
private int winSizeY = 600;
public MainWindow(String title)
{
super(title);
this.setSize(winSizeX, winSizeY);
desktop = new JDesktopPane();
this.getContentPane().add(desktop);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.addWindowListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Aber ich möchte mein Fenster maximiert haben, also schrieb ich folgendes:
Code:
public class MainWindow extends JFrame implements WindowListener
{
private JDesktopPane desktop = null;
private int winSizeX = 800;
private int winSizeY = 600;
public MainWindow(String title)
{
super(title);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
desktop = new JDesktopPane();
this.getContentPane().add(desktop);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.addWindowListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Das Problem ist aber nun, dass das JDesktopPane keine größenAngabe erhält, welches es vorher von setSize()
des JFrames bezogen hat.
Ok, dachte ich, dann mache ich halt einen Workarround;
Code:
public class MainWindow extends JFrame implements WindowListener
{
private JDesktopPane desktop = null;
private int winSizeX = 800;
private int winSizeY = 600;
public MainWindow(String title)
{
super(title);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
Dimension d = this.getSize();
this.setSize(d.width,d.height);
desktop = new JDesktopPane();
this.getContentPane().add(desktop);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.addWindowListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Aber von weeeeegen...warum klappt mein Workaround nicht ?
Der Fehler MUß da an dieser Stelle irgendwo sein, da ich ja, wenn ich manuell mit setSize() die größe ändere
alles perfekt funktioniert! Auch wird winSizeX und winSizeY nur hier benutzt und sonst nirgendswo!!
Weiss da jemand rat ??