JMenuBar und JToolBar Anzeige Probleme

Status
Nicht offen für weitere Antworten.

Pingu

Mitglied
Hallo

Hab folgendes Problem:

Ich habe eine JMenuBar (mit Menu und Items) erstellt und eine JToolBar. Wenn ich das Programm nun ausführe dann wird die JMenuBar und die ToolBar zunächst nicht angezeigt. Erst nachdem ich die Grösse des JFrames mit Drag'n'Drop verändert habe werden die beiden Komponenten angezeigt. Weiss jemand wieso? Oder falls es schon irgendwo eine Lösung gibt würde ich mich über den Link freuen. Habe irgendwie nicht gefunden.

CODE:

Code:
package business;

import java.awt.Image;
import java.awt.MenuBar;

import javax.swing.AbstractAction;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JToolBar;

import com.sun.org.apache.bcel.internal.generic.ANEWARRAY;

import resourcess.ClavisIconFactory;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.sql.Array;
public class ClavisBOManager extends JFrame{

	public void createTestGUI(){
		
		this.setVisible(true);
		this.setSize(1024, 768);
		this.setTitle("Clavis");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		ImageIcon clavisImageIcon = ClavisIconFactory.getInstance().getImageIcon(ClavisIconFactory.CLAVIS);
		Image clavis = clavisImageIcon.getImage();
		
		this.setIconImage(clavis);
		
		ImageIcon stop = ClavisIconFactory.getInstance().getImageIcon(ClavisIconFactory.STOP);
		ImageIcon newCode = ClavisIconFactory.getInstance().getImageIcon(ClavisIconFactory.NEW_CODE);
		ImageIcon newGroup = ClavisIconFactory.getInstance().getImageIcon(ClavisIconFactory.NEW_GROUP);
		ImageIcon edit = ClavisIconFactory.getInstance().getImageIcon(ClavisIconFactory.EDIT);
		ImageIcon delete = ClavisIconFactory.getInstance().getImageIcon(ClavisIconFactory.DELETE);
		ImageIcon save = ClavisIconFactory.getInstance().getImageIcon(ClavisIconFactory.SAVE);
		ImageIcon erase = ClavisIconFactory.getInstance().getImageIcon(ClavisIconFactory.ERASE);
		ImageIcon show_table = ClavisIconFactory.getInstance().getImageIcon(ClavisIconFactory.SHOW_TABLE);
		
		ActionStop aStop = new ActionStop("Vorgang abbrechen",stop);
		ActionNewCode aNewCode = new ActionNewCode("Neuer Code",newCode);
		ActionNewGroup aNewGroup = new ActionNewGroup("Neue Grupppe",newGroup);
		ActionEdit aEdit = new ActionEdit("Ändern",edit);
		ActionDelete aDelete = new ActionDelete("Löschen",delete);
		ActionSave aSave = new ActionSave("Speichern",save);
		ActionErase aErase = new ActionErase("Verwerfen",erase);
		ActionShowTable aShowTable = new ActionShowTable("Tabellenansicht",show_table);
		ActionClose aClose = new ActionClose("Beenden");
		ActionInfo aInfo = new ActionInfo("Infos");
		
		JToolBar toolBar = new JToolBar();
		
		JMenuBar menuBar = new JMenuBar();
		JMenu mnuDatei = new JMenu("Datei");
		JMenu mnuAction = new JMenu("Aktionen");
		JMenu mnuInfo = new JMenu ("?");
		
		JMenuItem mniNewCode = new JMenuItem(aNewCode);
		JMenuItem mniNewGroup = new JMenuItem(aNewGroup);
		JMenuItem mniSave = new JMenuItem(aSave);
		JMenuItem mniErase = new JMenuItem(aErase);
		JMenuItem mniEdit = new JMenuItem(aEdit);
		JMenuItem mniDelete = new JMenuItem(aDelete);
		JMenuItem mniStop = new JMenuItem(aStop);
		JMenuItem mniShowTable = new JMenuItem(aShowTable);
		JMenuItem mniInfos = new JMenuItem(aInfo);
		JMenuItem mniClose = new JMenuItem(aClose);
		
		menuBar.add(mnuDatei);
		mnuDatei.add(mniClose);
		
		menuBar.add(mnuAction);
		mnuAction.add(mniNewCode);
		mnuAction.add(mniNewGroup);
		mnuAction.addSeparator();
		mnuAction.add(mniEdit);
		mnuAction.add(mniDelete);
		mnuAction.addSeparator();
		mnuAction.add(mniSave);
		mnuAction.add(mniErase);
		mnuAction.addSeparator();
		mnuAction.add(mniStop);
		mnuAction.addSeparator();
		mnuAction.add(mniShowTable);
		
		menuBar.add(mnuInfo);
		mnuInfo.add(mniInfos);
		
		toolBar.add(aNewCode);
		toolBar.add(aNewGroup);	
		toolBar.addSeparator();
		toolBar.add(aEdit);
		toolBar.add(aDelete);
		toolBar.addSeparator();
		toolBar.add(aSave);
		toolBar.add(aErase);
		toolBar.addSeparator();
		toolBar.add(aShowTable);
		toolBar.addSeparator();
		toolBar.add(aStop);
		
		this.getContentPane().add(toolBar);
		this.setJMenuBar(menuBar);
		
	}

	public void getCodesAsTree(){
		
		
		
	}
	
	public void getGroupAsTree(){		
		
	}
	
	class ActionNewCode extends AbstractAction{

        public ActionNewCode(String text, ImageIcon newCode) {
            super(text,newCode);
        }

		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
		}
    }
	
	class ActionNewGroup extends AbstractAction{

        public ActionNewGroup(String text, ImageIcon newGroup) {
            super(text,newGroup);
        }

		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
		}
    }

	class ActionEdit extends AbstractAction{

        public ActionEdit(String text, ImageIcon edit) {
            super(text,edit);
        }

		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
		}
    }
	
	class ActionDelete extends AbstractAction{
		
        public ActionDelete(String text, ImageIcon delete) {
            super(text,delete);
        }

		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
		}
		
	}
	
	class ActionSave extends AbstractAction{
		
        public ActionSave(String text, ImageIcon save) {
            super(text,save);
        }

		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
		}
		
	}

	class ActionErase extends AbstractAction{
	
    public ActionErase(String text, ImageIcon erase) {
        super(text,erase);
    }

	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		
	}
	
}

	class ActionShowTable extends AbstractAction{
	
		public ActionShowTable(String text, ImageIcon show_table) {
			super(text,show_table);
		}
		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
		}
	}
	
	class ActionStop extends AbstractAction{

        public ActionStop(String text, ImageIcon stop) {
            super(text,stop);
        }

		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
		}
    }

	class ActionClose extends AbstractAction{

        public ActionClose(String text) {
            super(text);
        }

		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
		}
    }
	
	class ActionInfo extends AbstractAction{

        public ActionInfo(String text) {
            super(text);
        }

		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
		}
    }
	
}

Gruss Pingu
 
Bau diese Methode in den Frame:

Code:
public Dimension getPreferredSize()
{
    return new Dimension(400,300);
}

und wieso hast du Unmengen von Actionlistenern?
Kannst doch auch einen bauen und dann mit e.getSource().equals(...) unterscheiden...
 
Die habe ich nur provisorisch erstellt die kommen später noch weg. Bzw es wird dann eine Klasse geben die alle Actions verwaltet.

Die Mehtode funktionier bei mir nicht. Hab sie dem Frame und der ToolBar hinzugefügt. Die Menu und die ToolBar werden trotzdem noch nicht von Anfang an angezeigt.
 
leg zuerst alle eigenschaften für deinen frame fest und mach setVisible(true) erst ganz am schluss deines konstruktors... so wirds ziemlich sicher funktionieren.
 
ok das funtzt erst mal. danke. nun füllt die toolbar aber das ganze frame aus. sie sollt aber nur unter der menuleiste stehen und unten den restlichen freien content des panels.
 
Code:
JComponent gui = new JPanel(new BorderLayout());
gui.add(toolber, BorderLayout.NORTH);

frame.setContentPane(gui);

ein tipp allgemein: lager den gui erstellungs code in verschiedene methoden aus, welche dir jeweils einen container/component zurückgeben. das ganze wird dann ein wenig einfacher wartbar...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben