JToolbar wird überlappt

TheBodo

Erfahrenes Mitglied
Moinsen,

ich habe da ein kleines Problemchen:

Ich habe einen JFrame und in dem eine JMenuBar (mit setJMenuBar()) angefügt.
Diese t auch super!
So, nun habe ich aber eine JToolBar ( setFloatable(false)) hinzugefügt, am PAGE_START
Die sitzt da auch! Darunter habe ich aber ein JDekstopPane mit JInternalFrames, und wenn ich die maxmiere ist die Toolbar weg!
Ich hab dann eine BorderLayout gesetzt und das in Center eingefügt, aber es überlappt da oben trotzdem die Toolbar.

hier mal der relevante Code:

Code:
		this.setLayout(new BorderLayout());
		
		menu.add(neuMenu);
		setJMenuBar(menuBar);
		
		
		final ImageIcon smallIcon = new ImageIcon("newLP16.gif");
		
	    Action newAction = new AbstractAction() { 
	        /**
			 * 
			 */
			private static final long serialVersionUID = -4963346371459894162L;
			{ putValue( Action.NAME, "Neu" ); 
	          putValue( Action.SMALL_ICON, smallIcon );  
	          } 
	        public void actionPerformed( ActionEvent e ) { 
	        	neu.doClick();
	        }
	    };
	     
	    
	    toolBar.add(newAction);
	    toolBar.setAlignmentY(JToolBar.TOP_ALIGNMENT);
		toolBar.setFloatable(false);
	    
		this.add(toolBar, BorderLayout.PAGE_START);

    [...]

		screen.width -= scrIn.right;
		screen.width -= scrIn.left;
		screen.height -= scrIn.bottom;
		screen.height -= scrIn.top;
		Insets in = this.getInsets();
		innerDimension = new Dimension(this.getWidth() - in.left - in.right, this.getHeight() - in.top - in.bottom);
		innerDimension.height -= toolBar.getSize().height;
		
	
		
		main.setBackground(new Color(150, 150, 150)); // main = JDesktopPane
		main.setSize(innerDimension.width / 4 * 3, innerDimension.height);
		//main.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
		add(main);
		
		lists.setSize(innerDimension.width / 4 , innerDimension.height);
		//lists.setLocation(innerDimension.width / 4 * 3, 0);
		add(lists); // lists = ein JPanel

Danke für die Unterstützung
 
Zuletzt bearbeitet:
Moin!
Füge die ToolBar mit BorderLayout.NORTH und das DesktopPane mit BorderLayout.CENTER ein..
:
Code:
 /*
 * Main.java
 *
 *
 */



import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JToolBar;

/**
 *
 * @author jweckbach
 */
public class Main {
    
    /** Creates a new instance of Main */
    public Main() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        JFrame j = new JFrame();
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        JMenuBar bar = new JMenuBar();
        bar.add(new JMenu("test"));
        JToolBar tbar = new JToolBar();
        tbar.add(new JButton("test2"));
        JDesktopPane pane = new JDesktopPane();
        JInternalFrame iFrame = new JInternalFrame("TestIFrame");
        iFrame.setSize(400,400);
        iFrame.setMaximizable(true);
        pane.add(iFrame);
        panel.add(tbar,BorderLayout.NORTH);
        panel.add(pane,BorderLayout.CENTER);
        j.setContentPane(panel);
        j.setJMenuBar(bar);
        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        j.setSize(500,500);
        j.setVisible(true);
        iFrame.setVisible(true);
    }
    
}


*grüssle*
MeinerEiner
 
Das wie du es gesagt hast klappt halb,
es klappt nur wenn ich lists im BorderLayout.WEST adde!

So mach ich das nu, also nur gesagt falls das mal jemand findet und nachmachen will!
 
Zuletzt bearbeitet:
Zurück