BorderLayout.TOP resizen
-
Hallo nochmal.
Ich hab ein JFrame mit einen Borderlayout. Im Zentrum wird ein JPanel mit objekten dargestellt. im North bereich stelle ich ein JPanel im Flowlayout dar welches die JMenuBars anzeigt dar. Nun passiert es aber wenn das hauptfenster zu klein ist das FlowLayout Panel umbricht. Aber das Borderlayout ändert keine größe so das eines der Toolbars so nach unten rutscht das es vom Center bereich des Borderlayouts überdeckt wird und für mich nicht mehr verfügbar ist. Wie kann ich das Hauptfenster dazu zwingen also den North bereich wieder der richtigen größe an zu passen?
-
Hi.
Bei dem BorderLayout ist es so, dass der Center-Bereich nur den Platz zu geteilt bekommt, den kein anderer Bereich zu benötigt. Deiner Beschreibung nach, verstehe ich, dass es so eben nicht ist.
Vielleicht kannst du einfach mal die dazugehörigen Zeilen Code posten.
-
Moadeh schrieb:
Hi.
Bei dem BorderLayout ist es so, dass der Center-Bereich nur den Platz zu geteilt bekommt, den kein anderer Bereich zu benötigt. Deiner Beschreibung nach, verstehe ich, dass es so eben nicht ist.
Vielleicht kannst du einfach mal die dazugehörigen Zeilen Code posten.
Das dachte ich eben auch
hier der Code für das HauptfensterGPNObjectPanel objpan=null; EditModesToolBar editmodes=null; ProcedureToolBar procedures = null; MainMenu menu = null; AutomaticFireToolBar autofire = null; JPanel menuBars; public MainForm() { super("Petri Netz Designer"); //Transitionsmanager die referenz zum hauptfenster geben TransitionFireManager.get().setMainForm(this); //Scrollpane für den Center bereich anlegen JScrollPane sc = new JScrollPane(); //Panel zum zeichnen der Objekte anlegen objpan = new GPNObjectPanel(sc.getViewport(), this); //Viewport des Scrollpanels zuweisen sc.getViewport().setView(objpan); //Keylistener für das Panel anlegen und zuweisen PanelKeyListener test = new PanelKeyListener(objpan, this); objpan.addKeyListener(test); //Toolbars anlegen autofire = new AutomaticFireToolBar(); autofire.setEnabled(false); editmodes = new EditModesToolBar(objpan); procedures = new ProcedureToolBar(); //Zeichenpanel für den FireManager anmelden (um repaint aufzurufen) TransitionFireManager.get().setObjectPanel(objpan); //Hauptmenü setzen menu = new MainMenu(this, objpan); menu.setVisible(true); this.setJMenuBar(menu); //ProcedureManager Referenz zur Toolbar geben um diese zu aktualisieren ProcedureManager.get().setProcedureToolBar(procedures); //Flowlayout für menüs erzeugen FlowLayout fl = new FlowLayout(FlowLayout.LEFT); //Panel für Menüs erzeugen menuBars = new JPanel(fl); //Menüs zu den Panel hinzu fügen menuBars.add(editmodes); menuBars.add(procedures); menuBars.add(autofire); //MenüPanel im Top bereich hinzu fügen this.add(menuBars, BorderLayout.PAGE_START); //Scrollpane im Zentrum platzieren this.add(sc, BorderLayout.CENTER); //größe setzen this.setSize(new Dimension(950,800)); //Standard Close Operation setzen this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //Zentrieren this.setLocationRelativeTo(null); //Window Listener beim schließen den Timer ggf stoppen this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent evt) { TransitionFireManager.get().stopTimer(); } }); }