waarom werkt deze code niet terwijl het erg logische is

Status
Niet open voor verdere reacties.

jeroenSturm

Gebruiker
Lid geworden
2 mei 2012
Berichten
197
hier is de code maar als ik het run zet hij het north, center i.p.v. south, east

Code:
final JPanel p = new JPanel();
		JPanel p1 = new JPanel();
		JButton back = new JButton("Back");
				
		MainMenu.mainFrame.add(BorderLayout.SOUTH, p);
		p.add(BorderLayout.EAST, p1);
		p1.add(back);
 
Ik probeer te begrijpen wat je hebt gemaakt, maar ik mis een stukje. Wat is MainMenu?

Uit je vorige post te zien gebruik je eclipse? Eclipse noemt je mainframe (je belangrijste frame volgensmij) contentPane.

Verder ben ik bang dat je de parameters in de functie add() in de verkeerde volgorde zet.

Ik heb een programmaatje gemaakt met wat ik denk dat je bedoelt, een knop rechts onder:

Code:
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;


public class test extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					test frame = new test();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public test() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		JPanel p1 = new JPanel();
		JButton back = new JButton("Back");
		
		contentPane.add(p1, BorderLayout.SOUTH);
		p1.setLayout(new BorderLayout(0, 0));
		
		p1.add(back, BorderLayout.EAST);
	}

}
 
heei ja dat die parameters verkeerd stonden dat wist ik al want ik was even aan het proberen en toen het vereerde geplakt in het bericht , nu is het gelukt maar nu krijg ik nadat ik op die back knop heb gedrukt krijg ik in een andere klasse die er niks mee te maken heeft een hele rare layout hij zet alles verder uit elkaar dan dat de bedoeling is..
 
Laatst bewerkt:
Ik snap niet wat je bedoelt. Begrijp niet hoe iets wat ergens niet mee te maken heeft kan veranderen. Je zal ergens iets niet goed hebben gedaan denk ik.
 
Volgens mij zit je met het probleem dat je geen component aan de center van je panel toevoegt. De center is horizontaal en verticaal te vergrootten en verkleinen, omdat jij hier niks toevoegt is de breedte en wijdte 0 waardoor de rest van je panels op de verkeerde plek lijken te staan.

the EAST and WEST components may be stretched vertically; the CENTER component may stretch both horizontally and vertically to fill any space left over.
http://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html

Met vriendelijke groet,
NewbiProgrammer
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan