LayoutManager MigLayout Positionierung von Panels

Kenan89

Bekanntes Mitglied
Hallo,

ich habe mit MigLayout ein Problem. Die Panels ordnen sich nicht so an, wie ich möchte:


Java:
public class Screen extends JFrame{
	
	private Menubar menubar = new Menubar(this);
	private TileBox tilebox = new TileBox(this);
	private MapEditor mapeditor = new MapEditor(this);
	
	public Screen(int width, int height){
		setLayout(
				new MigLayout(
						"insets 0",
						"[grow][][grow]",
						"[][]"
				)
		);

		setSize(width, height);
		setLocationRelativeTo(null);
		
		add(menubar, "growx, spanx 3, wrap");
		add(tilebox.getTileboxScroll());
		add(mapeditor.getScrollEditor(), "span, grow");
	
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
}

Java:
public class MapEditor extends JPanel{
	
	private Screen screen;
	
	private JScrollPane scrollEditor = new JScrollPane(this);
	
	public MapEditor(Screen screen){
		this.screen = screen;
		init();
	}
	
	private void init(){
		setBackground(new Color(0,0,0));
	}
	
	public JScrollPane getScrollEditor(){
		return scrollEditor;
	}

}

Java:
public class Menubar extends JMenuBar{
	
	private Screen screen;
		
	public Menubar(Screen screen){
		this.screen = screen;
		init();
	}
	
	private void init(){
	
	}
}

Java:
public class TileBox extends JPanel{
	
	private Screen screen;
	
	private JScrollPane tileboxScroll;
	private int scrollPaneWidth = 200;
	
	private ArrayList<Tile> tiles = new ArrayList<Tile>();
	private File tFile;
	
	private boolean drawn = true;
	
	public TileBox(Screen screen){
		this.screen = screen;
		init();
	}
	
	private void init(){
		setBackground(new Color(255,255,255));
		setLayout(new MigLayout());
		tileboxScroll = new JScrollPane(this);
		tileboxScroll.setPreferredSize(new Dimension(200, 200));
	}

	public JScrollPane getTileboxScroll(){
		return tileboxScroll;
	}	
}

Hier in Bild:
Der schwarze Bereich liegt nicht direkt neben dem weissen.

Danke im voraus.
 

Anhänge

  • 2dcz4g8c.png
    2dcz4g8c.png
    30,3 KB · Aufrufe: 24
Zuletzt bearbeitet:
Nur mal so auf die Schnelle würde ich mich fragen, wieso du drei columns definierst, wenn du nur zwei haben möchtest.

Edit: btw. würde ich die JMenuBar immer noch mit setJMenuBar hinzufügen und nicht über das Layout.
 
Zuletzt bearbeitet:
Nur mal so auf die Schnelle würde ich mich fragen, wieso du drei columns definierst, wenn du nur zwei haben möchtest.

Edit: btw. würde ich die JMenuBar immer noch mit setJMenuBar hinzufügen und nicht über das Layout.

Wieso 3 Column?
Ich füge oben das menü ein
unten dann die 2 Spalten TileBox und MapEditor.
Nur muss ich beim Menü spanx 3 machen, damit er sich über den ganzen Frame
erstreckt.
 
Ich meine diesen Abschnitt:

Java:
 new MigLayout(
                        "insets 0", //Layout Constraints
                        "[grow][][grow]", //Column Constraints
                        "[][]" //Row Constraints
                )

Demnach hast du drei columns, oder verstehe ich das im Quick Start Guide falsch?
 

Zurück
Oben