Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Swing Startschwierigkeiten

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.01.2007
    Beiträge
    14

    Swing Startschwierigkeiten

    Hi,

    möchte mich nun zum Anfang an einem eigentlich einfachen Programm versuchen.
    Ein JFrame mit Menü, wo beim Klicken auf den Menü-Eintrag "About" ein Fenter aufgeht.

    Schwierigkeiten habe ich vorallem in der Struktur, was sich beim Implementieren des ActionListeners gezeigt hat und beim anschließenden Hinzufügen des aufzugehenden Fensters dem JFrame.

    Code:
    import java.awt.*;
    import java.awt.event.*;
    
    import javax.swing.*;
    
    public class test implements ActionListener{
    	
    	public static JMenuBar createMenuBar(ActionListener listener) {
    
          //  JMenu
          JMenuBar mbar = new JMenuBar();
          ...
          JMenu m3 = new JMenu( "?" );
          ...
          JMenuItem mi32 = new JMenuItem("About");
          mi32.addActionListener(listener);
          m3.add(mi32);
          mbar.add( m3 );
          
          return mbar;
    	}
    	/**
    	 * The JFrame Shower is neccessary to make the
    	 * Project Thread Save
    	 */
    	static class JFrameShower implements Runnable{
    		final JFrame frame;
    		public JFrameShower(JFrame frame) {
    			this.frame = frame;
    			EventQueue.invokeLater(this);
    		}
    
    		public void run() {
    			frame.setVisible(true);
    		}
    	}
    	
    	public static void main(String[] args) {
    		
    		JFrame frame = new JFrame("Test");
    		
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setSize(frame.getToolkit().getScreenSize().width, 
    					  frame.getToolkit().getScreenSize().height);
    		
    		ActionListener listener = new ActionListener() {
    		      public void actionPerformed(ActionEvent event) {
    		    	  if(event.getActionCommand()=="About")
    		    	  
                              // FENSTER OEFFNEN
    		    	  openWindow(...);
    		      }
    		  };
    		  
            frame.setJMenuBar(createMenuBar(listener));
    		
           // Display the window in a thread safe way.
    	new JFrameShower(frame);
    	}
    
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
    	}	   
    }
    Zuerst hatte ich Schwierigkeiten den ActionListener vernünftig zu setzen (also vernünftig außerhalb), weil es mir wohl an der Grundlogik bezüglich der richtigen Struktur fehlt.
    Wie stelle ich es jetzt an, dass ich aus der actionPerformed-Funktion meine gewünschten Änderungen z.B. eine Aufruf frame.getContentPane().add(fenster) hinbekomme.
    Dazu muss ich ja den JFrame übergeben richtig. Was aber so, wie ich es gemacht habe nicht funktioniert

    Könnte mir vielleicht jemand einen Hilfsansatz geben, damit ich bei meinem Code weiterkomme.

    Habe mir viele Beispiele angeguckt, die aber alle unterschiedlich strukturiert waren und ich es nicht hinbekommen habe, dass ich das auf meine Struktur ummünzen konnte.

    Viele Dank schon mal im Voraus

    Saludos,

    p3lotud0

  2. #2
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Kennst du schon dieses Tutorial.

    Dort geschieht eigentlich Schritt für Schritt genau das, was du möchtest:

    http://java.sun.com/docs/books/tutor...ents/menu.html
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  3. #3
    Registrierter Benutzer
    Registriert seit
    02.01.2007
    Beiträge
    14
    Ok, habe es jetzt hinbekommen. Zwar nicht in gewünschter Struktur, aber zufriedenstellend...

    Saludos,

    p3lotud0
    Geändert von p3lotud0 (11-01-2007 um 20:44 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •