Problem mit BorderLayout NORTH und SOUTH

shevazri

Mitglied
Hi, muss für die Schule ein Spiel programmien und habe beim GUI ein kleines Problem.

Es sieht so aus:
captureg6kch.png


Gewollt ist aber, dass die Buttons unter den Bildern sind.
und hier natürlich noch der Code

Java:
        JPanel pnl_obama = new JPanel();
	JPanel pnl_romney = new JPanel();
	JPanel pnl_santorum = new JPanel();
	JPanel pnl_gingrich = new JPanel();
	JPanel pnl_paul = new JPanel();

        JLabel icon_obama = new JLabel(new ImageIcon("img/candidates/obama.jpg"));
	JLabel icon_romney = new JLabel(new ImageIcon("img/candidates/romney.jpg"));
	JLabel icon_santorum = new JLabel(new ImageIcon("img/candidates/santorum.jpg"));
	JLabel icon_gingrich = new JLabel(new ImageIcon("img/candidates/gingrich.jpg"));
	JLabel icon_paul = new JLabel(new ImageIcon("img/candidates/paul.jpg"));
	
	JButton btn_obama = new JButton("Barack Obama");
	JButton btn_romney = new JButton("Mitt Romney");
	JButton btn_santorum = new JButton("Rick Santorum");
	JButton btn_gingrich = new JButton("Newt Gingrich");
	JButton btn_paul = new JButton("Ron Paul");

        pnl_obama.add(icon_obama,BorderLayout.NORTH);
	        pnl_obama.add(btn_obama,BorderLayout.SOUTH);
		pnl_romney.add(icon_romney,BorderLayout.NORTH);
		pnl_romney.add(btn_romney,BorderLayout.SOUTH);
		pnl_santorum.add(icon_santorum,BorderLayout.NORTH);
		pnl_santorum.add(btn_santorum,BorderLayout.SOUTH);
		pnl_gingrich.add(icon_gingrich,BorderLayout.NORTH);
		pnl_gingrich.add(btn_gingrich,BorderLayout.SOUTH);
		pnl_paul.add(icon_paul,BorderLayout.NORTH);
		pnl_paul.add(btn_paul,BorderLayout.SOUTH);
		
		dem_candidates.setLayout(new GridLayout(1,4,10,10));
		dem_candidates.add(pnl_obama);

        candidates.setLayout(new BorderLayout());
		candidates.add(dem_candidates,BorderLayout.NORTH);

hoffe ihr könnt mir helfen, herauszufinden was das Problem ist.
 
Deine Kandidaten-Panels haben das Standardlayout FlowLayout. Um
Code:
BorderLayout.NORTH
etc. nutzen zu können musst du ihnen ein BorderLayout via
Code:
setLayout()
verpassen.

[EDIT]
Java:
JPanel pnl_obama = new JPanel(new BorderLayout());

pnl_obama.add(icon_obama, BorderLayout.NORTH);
pnl_obama.add(btn_obama, BorderLayout.SOUTH);
[/EDIT]
 

Zurück
Oben