GridLayout spinnt

Status
Nicht offen für weitere Antworten.

raven

Bekanntes Mitglied
Hi,

Hab ein kleines Problem. Ich spiele gerade ein bisschen mit den Layout rum.

Oben habe ich den North-Teil des Border Layout in zwei teile aufgeteielt. Fürs Menü und die Werkzeugleiste.

Ach hier einfach der Code. Schaut selbst.

Code:
import java.awt.*; 
import javax.swing.*; 
 
public class JMenus extends JFrame {
	
	public JMenus(){  
		setTitle("Test");
		setBounds(200,200,800,600);
		
		BorderLayout border = new BorderLayout(0,5);
		GridLayout gridLayout1 = new GridLayout(2, 1, 0, 5);
		
		JPanel pane = new JPanel();
		JPanel North = new JPanel();
		JPanel tool = new JPanel();
		JPanel bar = new JPanel();
		
		JMenuBar menuBar = new JMenuBar();
		JToolBar toolBar = new JToolBar();
		JTextPane textPane = new JTextPane();
		JScrollPane scroll = new JScrollPane(textPane, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
		ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		
		JButton New = new JButton("Neu");
		JButton Open = new JButton("Öffnen");
		JButton Save = new JButton("Speichern");
		JButton Print = new JButton("Drucken");
		
	
		JMenu menu1 = new JMenu("Datei");
		JMenuItem menuItem1 = new JMenuItem("Neu");
		JMenuItem menuItem2 = new JMenuItem("Öffnen");
		JMenuItem menuItem3 = new JMenuItem("Speicher");
		JMenuItem menuItem4 = new JMenuItem("Speichern unter");
		JMenuItem menuItem5 = new JMenuItem("Beenden");
		
		menu1.add(menuItem1);
		menu1.addSeparator();
		menu1.add(menuItem2);
		menu1.add(menuItem3);
		menu1.add(menuItem4);
		menu1.addSeparator();
		menu1.add(menuItem5);
		
		JMenu menu2 = new JMenu("Bearbeiten");
		JMenuItem menuItem6 = new JMenuItem("Kopieren");
		JMenuItem menuItem7 = new JMenuItem("Ausschneiden");
		JMenuItem menuItem8 = new JMenuItem("Einfügen");
		JMenuItem menuItem9 = new JMenuItem("Alles markieren");
		JMenuItem menuItem10 = new JMenuItem("Suchen");
		
		menu2.add(menuItem6);
		menu2.add(menuItem7);
		menu2.add(menuItem8);
		menu2.addSeparator();
		menu2.add(menuItem9);
		menu2.addSeparator();
		menu2.add(menuItem10);
		
		JMenu menu3 = new JMenu("Einstellungen");
		JMenuItem menuItem11 = new JMenuItem("Kurzbefehle festlegen");
		JMenuItem menuItem12 = new JMenuItem("Werkzeugleiste einrichten");
		JMenuItem menuItem13 = new JMenuItem("... einrichten");
		
		menu3.add(menuItem11);
		menu3.add(menuItem12);
		menu3.add(menuItem13);
		
		JMenu menu4 = new JMenu("Hilfe");
		JMenuItem menuItem14 = new JMenuItem("Handbuch zu ...");
		JMenuItem menuItem15 = new JMenuItem("Was ist das?");
		JMenuItem menuItem16 = new JMenuItem("Tipp des Tages");
		JMenuItem menuItem17 = new JMenuItem("Berichten Sie Probleme oder Wünsche!");
		JMenuItem menuItem18 = new JMenuItem("Über ...");
		
		menu4.add(menuItem14);
		menu4.add(menuItem15);
		menu4.add(menuItem16);
		menu4.addSeparator();
		menu4.add(menuItem17);
		menu4.addSeparator();
		menu4.add(menuItem18);
		
		menuBar.add(menu1);
		menuBar.add(menu2);
		menuBar.add(menu3);
		menuBar.add(menu4);
		
		toolBar.add(New);
		toolBar.add(Open);
		toolBar.add(Save);
		toolBar.add(Print);
		
		pane.setLayout(border);	
		pane.add("North", North);
		pane.add("South", new JPanel());
		pane.add("West", new JPanel());
		pane.add("East", new JPanel());
		pane.add("Center", scroll);
		
		North.setLayout(gridLayout1);
		North.add(bar);
		North.add(tool);
		
		bar.add(menuBar);
		tool.add(toolBar);
		
		setContentPane(pane);
		setVisible(true);
	}
    
	public static void main (String[] args){ 
		JMenus frame = new JMenus();  
	} 
}
Sieht total verhauen aus.

Das Menü und die Werkzeugleiste gehen nich bis zum rand.
 
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JFrame.html#setJMenuBar(javax.swing.JMenuBar)
 
Wenn ich dich richtig verstehe soll ich satt add, setJMenuBar verwenden.

Habe ich davor ja auch gemacht. bloß dann bekomme ich diese Fehlermeldung.

JMenus.java:104: cannot find symbol
symbol : method setJMenuBar(javax.swing.JMenuBar)
location: class javax.swing.JPanel
bar.setJMenuBar(menuBar);
^
1 error


also habe ich es mit add probiert und da gings. Kann das sein das das wirklich an den add liegt?
 
X_Master hat gesagt.:
Wenn ich dich richtig verstehe soll ich satt add, setJMenuBar verwenden.

du sollst JFrame#setJMenuBar verwenden und nicht JPanel#setJMenuBar (weils die nicht gibt!!)
und seit wann könenn panels menüleisten haben?
 
ein bisschen genau bitte?

Ich arbeite die ganze Zeit mit Panels für die Layoutaufteilung und jetzt aus einmal soll ich das frame nehmen.

Ein stücken Code bitte!

Jetzt bin ich ganz durcheinander.

Warum kann das JPanel Buttons und alles beinhalten und gerade die MenuBar nicht. Warum?
 
du kannst einem Panel selbstverstänbdlich deine menüleiste hinzufügen, aber warum der umweg, zumal es scheiße aussieht und dir außerdem platz auf der contentpane wegnimmt?
 
also gibt es noch andere Möglickeiten Layouts zu unterteilen.

Und wie mache ich das? (Code) Was sieht scheiße aus? Da merkt man doch kein unterschied.
 
ähh?
du hast doch selbet gesagt dass ein JPanel mit ner JMenuBar druff scheiße aussieht....
 
Vielen Dank habe das Problem gelöst.

Ich dachte es sieht allgemein scheiße aus egal was man macht mit JPanels.
 
Es ist eigentlich genau anders herum. Ohne Panels sieht es fast immer übel aus. Zumindest wenn ein paar mehr Elemente in der GUi platziert und ausgerichtet werden müsen.
 
Snape hat gesagt.:
Es ist eigentlich genau anders herum. Ohne Panels sieht es fast immer übel aus. Zumindest wenn ein paar mehr Elemente in der GUi platziert und ausgerichtet werden müsen.
die contentpane einer rootpane is aba auch nen JPanel :bae:
 
ergo arbeitet man immer mit min. einem panel 😉 .... und jaja ich weiß was du meinst :? ich muss ja nur beni aufholen mit den posts 😉
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben