1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Kommunikation zwischen 2 Klassen

  • trenki
  • 8. Juli 2006 um 04:06
  • Unerledigt
  • trenki
    1
    trenki
    Gast
    • 8. Juli 2006 um 04:06
    • #1

    Hi, ich hab da eine Klasse die erstellt ein Objekt, das sieht ca. so aus:

    Code
    public class MyClass
    {
    ...
    ...
    private void procedure1()
    {
    MyClass2 cl = new MyClass2();
    ...
     
    }
    ...
    }
    Alles anzeigen

    Jetzt möchte ich, dass MyClass bei erreichen eines gewissen Programmabschnittes in MyClass eine Aktion durchführt, wie mach ich das am besten?
    Ich hab mir mal überlegt einen extra Event Typ dafür zu erstellen um dann diesen in MyClass2 auszulösen und dass den MyClass dann erhält, allerdings findet man irgendwie im Netz wiederum irgendwie keine brauchbaren Tips wie ich den extra Event erstellen würde... vieleicht bin ich aber auch nur blind?
    Auf jedenfall wär ich für jede Hilfe dankbar!

  • trenki
    1
    trenki
    Gast
    • 8. Juli 2006 um 05:36
    • #2

    Hmm anscheinend lösen sich alle meine Probleme von selbst, wenn ich irgendwo um hilde bitte...

    Falls jemand anderes mal dasselbe Problem haben sollte, poste ich hier mal meinen Code....


    UserPanelEvent.java:

    Java
    import java.util.EventObject;
    public class UserPanelEvent extends EventObject  {
    
    
    	// Deklariere den Eventm er extendet EventObject
    
    	public UserPanelEvent(Object source) {
             super(source);
         }
    }


    UserPanelEventListener.java:

    Java
    import java.util.EventListener;
    
    
    public interface UserPanelEventListener extends EventListener {
    	 // Deklariere die Listener Klasse, sie muss den Eventlistener extenden
        // Die Klasse muss dieses Interface implementieren um die Userpanelevents zu erhalten.
    	public void UserPanelEventOccurred(UserPanelEvent event);
    }


    UserPanel.java:

    Java
    import java.awt.Container;
    import java.io.Serializable;
    import java.util.Enumeration;
    import java.util.Vector;
    
    
    public class UserPanel extends Container implements Serializable {
    
    
    	UserPanel() {
    		rechne();
    		//senden nun den event 
    		fireUserPanelEvent(true);
    
    
    	}
    
    
    	private void rechne() {
    		//hier wird gerechnet	oder sonstwas gemacht
    	}
    
    
    	private transient Vector listeners;
    
    
    	/** zjm registrieren neuer Listener des Typs UserPanelEvent */
    	@SuppressWarnings("unchecked")
    	synchronized public void addUserPanelEventListener(UserPanelEventListener l) {
    		if (listeners == null)
    			listeners = new Vector();
    		listeners.addElement(l);
    	}
    
    
    	/** zum entfernen neuer Listener des Typs UserPanelEvent */
    	synchronized public void removeUserPanelEventListener(
    			UserPanelEventListener l) {
    		if (listeners == null)
    			listeners = new Vector();
    		listeners.removeElement(l);
    	}
    
    
    	/** Den Event zu allen freunden senden */
    	protected void fireUserPanelEvent(boolean bla) {
    		// prüfe ob wir listener haben ansonsten tue nix...
    		if (listeners != null && !listeners.isEmpty()) {
    			// Wir erstellen das Event Objekt das wir dann Senden
    			UserPanelEvent event = new UserPanelEvent(this);
    
    
    			// dann machen wir noch ne Kopie falls jemand auf die Idee kommt
    			//   noch welche hinzuzufügen bzw,. zu entfernen
    			Vector targets;
    			synchronized (this) {
    				targets = (Vector) listeners.clone();
    			}
    
    
    			// So nun gehn wir alle Listener durch und 
    			//  senden jedem unser EventObjekt
    			Enumeration e = targets.elements();
    			while (e.hasMoreElements()) {
    				UserPanelEventListener l = (UserPanelEventListener) e
    						.nextElement();
    				l.UserPanelEventOccurred(event);
    			}
    		}
    	}
    }
    Alles anzeigen


    Meine_Klasse.java:

    Java
    //import java.bla...
    
    
    public class Meine_Klasse implements UserPanelEventListener{
    
    
    	Meine_Klasse()
    	{
                    //hier das objekt erstellt
    		UserPanel up = new UserPanel();
                    //hier dann den event listener zuibauen
    		up.addUserPanelEventListener(this);
    
    	}
    
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		new Meine_Klasse();
    	}
    
    
    	public void UserPanelEventOccurred(UserPanelEvent event) {
    		//Hier kann man dann seine Aktionen Planen wenn man den Event erhält 
    
    	}
    
    
    }
    Alles anzeigen
  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung