Startmenü ala Windows erstellen!

DeMon Toll

Grünschnabel
Guten Morgen Community,

ich hab da mal ne frage (siehe Betreff). Und zwar hab ich das ganze mal auf eigene Faust versucht nur bis dato noch nich so wirklich hinbekommen^^. Ich habs mal so versucht aber das einzige womit ich es hinbekomme ist mit einem seperaten Fenster und das sollte ja eigentlich nicht sein. Ich zeig euch mal meine geistigen Ergüsse zu dem Thema die ich bis dato zusammen bekommen habe^^.

CODE: //ANFANG - CODE


JFrame f = new JFrame("Programm");
f.setSize(300,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



JMenuBar bar = new JMenuBar();
JMenu datei = new JMenu("Start");
JMenuItem info = new JMenuItem("Datei");
JMenuItem ende = new JMenuItem("Beenden");
ende.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
datei.add(info);
datei.add(ende);
bar.add(datei);

f.setJMenuBar(bar);
f.setVisible(true);

CODE:// ENDE - CODE

(für etwaige einrückungsfehler entschuldige ich mich copy+paste ;) )


bin für jede hilfe dankbar.


DeMon
 
Zuletzt bearbeitet:
Du könntest ja auch die Code-Tags benutzen;)
So habe ich es verstanden: Du möchtest gerne eine Art Startmenü schreiben, das nicht auf einem extra Fenster liegt, sondern so wie die Startleiste auf deinem Desktop oder ähnliches liegen soll?
 
Richtig ich habe einen Button (START) und sobald ich diesen betätige/drücke soll sich das Menü öffnen (wie wenn man in Windoof auf Start klickt).


und zu den Tags...joa könntest recht haben mal ausrobieren^^.
Code:
System.out.println("MUHAHAHA ES FUNKTIONIERT :D");



DeMon
 
Ist zwar in SWT, aber sollte dir trotzdem helfen(hoffe ich;) )
was sagst du dazu?
Java:
package de.tutorials;

import java.awt.Toolkit;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;

/**
 * Beispiel für ein Menü
 * @author tkoehler
 */
public class Startmenu {
	
	public static Shell shell;
	public static Display display;
	public static Menu menuBar, fileMenu, helpMenu;
	public static MenuItem fileMenuHeader, helpMenuHeader;
	public static MenuItem fileExitItem, fileSaveItem, helpGetHelpItem;
	
	/**
	 * Die main-Methode ruft die Methoden auf
	 * und verhindert das sofortige Schließen
	 * des Fensters.
	 * @param args werden nicht benötigt.
	 */	
	public static void main(String[] args)
	{
		createWidgets();
		createListeners();
		
		shell.open();
	    
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) 
				display.sleep();
		}
		display.dispose();
	}		
//-----------------------------------------------------------------------------//
	/**
	 * In dieser Methode werden die Widgets erstellt.
	 * shell.setLocation setzt das Fenster im Verhältnis
	 * zur Auflösung an die obere Seite des Displays
	 */
	public static void createWidgets()
	{	
		//---- Fenster ----
		display = new Display();
		shell = new Shell(display, SWT.NO_BACKGROUND);
		shell.setSize(Toolkit.getDefaultToolkit().getScreenSize().width, 20);
		shell.setLayout(null);
		
		shell.setLocation(0,0);
		
		

		menuBar = new Menu(shell, SWT.BAR);
	    fileMenuHeader = new MenuItem(menuBar, SWT.CASCADE);
	    fileMenuHeader.setText("&File");

	    fileMenu = new Menu(shell, SWT.DROP_DOWN);
	    fileMenuHeader.setMenu(fileMenu);

	    fileSaveItem = new MenuItem(fileMenu, SWT.PUSH);
	    fileSaveItem.setText("&Save");

	    fileExitItem = new MenuItem(fileMenu, SWT.PUSH);
	    fileExitItem.setText("E&xit");

	    helpMenuHeader = new MenuItem(menuBar, SWT.CASCADE);
	    helpMenuHeader.setText("&Help");

	    helpMenu = new Menu(shell, SWT.DROP_DOWN);
	    helpMenuHeader.setMenu(helpMenu);

	    helpGetHelpItem = new MenuItem(helpMenu, SWT.PUSH);
	    helpGetHelpItem.setText("&Get Help");
	    shell.setMenuBar(menuBar);
		
	}	
//-----------------------------------------------------------------------------//	
	/**
	 * Erstellt die Listener für die Widgets.
	 * Listener für fileExitItem 
	 * schließt das Fenster.
	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
	 */
	public static void createListeners()
	{
		fileExitItem.addListener(SWT.Selection, new Listener()
		{
			public void handleEvent(Event arg0) 
			{
				shell.dispose();
			}
		});
	}	
}
 
Zuletzt bearbeitet von einem Moderator:
hmm...joar sieht ganz interessant aus. Werds mir mal durchlesen und dann in mein programm einbauen. Erst mal für deine Mühe (ein 103 zeiliges Beispiel sieht man nicht oft ;) ). Meld mich wieder falls es geklappt hat oder auch nicht^^.



DeMon
 
Naja, die Länge ist ja wegen der Kommentare;) Will ich mir jetzt angewöhnen^^ Ach, und wegen der Aufspaltung in verschiedene Methoden;) Das geht auch sehr viel kleiner, aber so ist es auch ordentlich:) Viel Spaß dabei
 
Nen dozent von uns, hat mal von einem anderne Studenen nen sourcecode von 2 auf eine Seite verkuerzt und war voll stolz auf sich :P, oh man, als ob das was gebracht haette :P
 
Jaaaa, kürzen geht immer;) Aber wenn jemand anderes damit arbeiten muss.... naja ^^
 
ja Kommentierung & Dokumentierung sollte ich mir echt noch angewöhnen^^. Da hab ich noch meine liebe mühe mit. Aber ich MUSS mein lehrer zieht mir sonst pro Fehlenden Kommentar ne Halbe Note ab und das kommt iwie uncool^^. Und ja spaß werd ich haben ;).

@mimij85: Ja durfte ich auch mal nem klassen kameraden machen weil er alle Textausgaben nicht per Schleife gelöst hatte sondern per 50xprintf(C#) (Die schleife sollte 50x laufen). Also hab ich ihm alle Printfs durchgestrichen. Und danach naja....sagen wir mal so der Quelltext war danach schön kompakt :D.



DeMon
 
So hi leutz da bin ich wieder, bin gerade nicht zum testen gekommen^^. Produktionsausfall von nem Server (VMWare grrrrrr). So nun ist mir aufgefallen dass, das ja eclipse imports sind. Ich arbeite aber mit Netbeans. Kann mir einer vlt. sagen wie ich jetzt die imports in mein Projekt einbinde? Wie ihr vlt. schon gemerkt hab bin ich noch ein ziemlicher n.o.o.b (hahaha wortprüfung überlistet^^) was java angeht.

wär echt nett


Grüße ausm verregneten Schwabenländle :)

DeMon
 
Zuletzt bearbeitet:
Zurück