Feedback in Fenster ausgeben

Dungo

Mitglied
Kurz zu mein Probelm, ich muss (bei meiner Diplomarbeit) jedes Mal wenn der Anwender was macht und dann "speichern" drückt ein Feedback ausgben.

Meine Vorgehensweise: Observer an den Event anhängen, und die verschidene Feedbacks (Sätze die Angezeigt werden) in ein Fenster anzugeben.

Problem: wie bekomme ich den Text aus dem Feedback in dem Fenster angezigt und war immer wenn der Event ausgerufen wurde?? Bin ich von der Ansatz her schon auf dem Holzweg .. oder wie bringe ich dem Fenster bei die Arbeit zu tun? VIELEN DANK FÜR KOMMENTARE, IDEEN....

Die Varibalen anzahlGlobalClicks, anzahlGlobalClicks zählen die gesamt Klicks aller User bzw der gerade eingeloggten User.

Die Idee warum, ich möchte den Observer verwenden möchte, ist es dass noch nicht entschieden ist welcher der Feedbacks später verwendet wird, oder ob der User selbst wählen darf welches Feedback er erhalten möchte.



Hier BSP einer der Feedback Klassen:

Java:
public class ShowFeedbackRelative1 implements ShowFeedback, FeedbackObserver {
	
	private int anzahlLocClicks;
	private int anzahlGlobalClicks;
	private FeedbackSimulatorInterface feedbackSimulator;

	public ShowFeedbackRelative1(FeedbackSimulatorInterface feedbackSimulator){
		this.feedbackSimulator = feedbackSimulator;
		feedbackSimulator.registerFeedbackObserver(this);
	}
	
	
	public void update(int anzahlLocClicks, int anzahlGlobalClicks ){
		this.anzahlLocClicks = anzahlLocClicks;
		this.anzahlGlobalClicks = anzahlGlobalClicks;
		feedback();
	}
	
	public void feedback(){
		int relativeBeiträge;
		relativeBeiträge = (anzahlLocClicks * 100) / anzahlGlobalClicks;
		System.out.println("Vielen Dank, sie haben mehr Beiträge als " + relativeBeiträge+ "% der Teilnehmer");				
	}
}
_____________
 
Zuletzt bearbeitet von einem Moderator:

KrokoDiehl

Top Contributor
Hallo.
Ich weiß nicht, ob ich dich richtig verstehe, aber prinzipiell klingt das Observer-Design hier schon richtig. Generell ist aber dieses Design so ausgelegt, dass du einen Beobachter (Observer) hast und diverse Beobachtete (Observerables oder so :oops: ). Jenachdem was du alles beobachten willst, musst du aus allem so ein beobachtetes Objekt machen.
Bei dir klingt es jedoch eher so, als wolltest du alle Klicks u.ä. zählen? Da hilft dir ggfs. ein globaler Listener, nach dem Vorbild vom GlobalKeyListener...
Um Klicks zu zählen ist ein Observer-Design wohl etwas umständlich.
 

Dungo

Mitglied
Hi,

Danke für die Antwort.

Beim auflösen des Events sollten

a) Variablen upgedated werden alteVar = alteVar++;
b) Feedback in ein Fenster ausgegeben werden (damit der Anwender weisst alles ok & zusatz infos über sein Status, Anzahl Speicherungen ..... )

Der Observer ist dazu da damit die verschiedene Feedbacks nicht jedes Mal registrieren muss wenn was verändert werden muss.
Ich habe 4 Feedback Klassen welcher nach Eintretten von den Event ("speichern" Klick) benachrichtigt werden. Diese können bei Bedarf gelöscht, geändert oder noch mehr dazu kommen. Deswegen der Observer.

Unabhängig davon wie die Klicks gezählt werden (vermutlich das kleinere Problem) mein Hauptproblem ist wie ich den Feedback in einem Fenster anzeigen kann. Meine Idee bis jetzt, Observer benachrichtigt die Feedback Klassen und diese Rufen eine "display Feedback" Methode aus. Fenster wird aufgemacht und Feedback wird dort angezeigt. Fenster Interfache implementieren und in den Feedback Klassen mit class feedback ... implements Fenster .... zu verwenden.

event eingetretten -> benachrichtige observer -> benachrichtige feedbacks -> rufe fenster aus -> zeige in das fenster feedback = mein Problem ....

das Hauptprogramm ist mit Hilfe von Google GWT (Google Web Toolkit Overview - Google Web Toolkit - Google Code) erstellt worden. An sich kann ich Dank den Observer von den Ganzen abstrahieren (richtig?) und mich nur um die Events (welcher beim drücken der "speichern" Taste aufgerufen werden) kümmern.
 

KrokoDiehl

Top Contributor
Hallo.
Ok, bzgl GWT kann ich dir nicht helfen, aber ich kann dir sagen, wie es "üblicherweise" (...d.h. so wie ich es machen würde ;) ) gemacht wird.

Wenn du eine Klasse hast, die Klicks etc zählt, kann (sollte) diese Klasse über das "PropertyChange"-Prinzip (PropertyChangeListener oder PropertyChangeSupport) Änderungen mitteilen. Dazu brauchst du eine Klasse, die die Darstellung übernimmt - wie auch immer du diese Statistiken anzeigen willst - und sich als PropertyChangeListener an deine zählende Klasse hängt.

Ich versuch's mal in Quasi-Java-Code auszudrücken:
Java:
public class Zaehler
{
    private int klicks = 0;
    private PropertyChangeSupport supp = new PropertyChangeSupport();

    public void addPropertyChangeListener(PropertyChangeListener listener)
    {
        supp.addPropertyChangeListener(listener);
    }

    // das gleiche für removeP...listener

    public void benutzerHatGekickt()
    {
        klicks++;

        supp.firePropertyChange("klicks", klicks-1, klicks);
    }
    
    public int getKlicks()
    {
        return klicks;
    }
}
Und die Anzeigende Klasse könnte so aussehen
Java:
public class StatistikAnzeige implements PropertyChangeListener
{
    public StatistikAnzeige( Zaehler zaehler )
    {
        // gui aufbauen usw

        // folgendes kann auch woanders gemacht werden, aber ist wichtig!
        // sonst bekommt die Anzeige nichts mit
        zaehler.addPropertyChangeListener(this);
    }

    @Override
    public void propertyChange(PropertyChangeEvent event)
    {
        if ("klicks".equals( event.getPropertyName() ))
        {
            meinLabelDerDieKlicksAnzeigt.setText(event.getNewValue().toString());
        }
    }
}

Das ist im Prinzip genau das Observer-Pattern, nur hier eher bekannt unter "PropertyChange" :)
Vielleicht ist das ganze zu Swing-ähnlich, aber da es im java.util-Package ist, ist es zumindest allgemein verwendbar... sage ich mal so.
 

Dungo

Mitglied
Hallo,

Danke für die Antwort, werde mich gleich ans ausprobieren machen.
Ob SWING oder GWT ist es nicht entscheidend, hauptsache es funktioniert, import javax.swing.* oder .util kann ich problemlos einfügeh.

Melde mich sobald ich alles implementiert und getestet habe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Swing Drag&Drop mit Feedback (Image am Mauszeiger) AWT, Swing, JavaFX & SWT 7
hdi GUI - Bitte optisches Feedback ;) AWT, Swing, JavaFX & SWT 26
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
berserkerdq2 Kann ich ein Rechteck mittig im Fenster halten, egal wie ich die Bildschirmgröße verändere? AWT, Swing, JavaFX & SWT 3
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
TheSepp Fenster um x Pixel bewegen, wenn man auf dem Knopf drückt AWT, Swing, JavaFX & SWT 10
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
L Swing Files abspeichern mit Save as Dialog Fenster AWT, Swing, JavaFX & SWT 5
OZAN86 einfaches Fenster öffnen scheitert AWT, Swing, JavaFX & SWT 18
G Zuletzt aktives Fenster, vor dem aktuell aktiven AWT, Swing, JavaFX & SWT 2
sserio Kann man bei JavaFx ein Fenster aufkommen lassen? AWT, Swing, JavaFX & SWT 1
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
S Swing Alles beenden bei Fenster mit Scroll-Balken AWT, Swing, JavaFX & SWT 6
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
W Zweites/neues Fenster durch Button öffnen AWT, Swing, JavaFX & SWT 6
CptK Fokus auf geöffnetes Zweit-Fenster setzen und Eingaben außerhalb blocken AWT, Swing, JavaFX & SWT 2
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
MiMa JavaFX Fenster in JavaFX öffnen Schliessen (Initialisierung) AWT, Swing, JavaFX & SWT 20
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
L Hintergrundbild im Fenster darstellen AWT, Swing, JavaFX & SWT 9
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
B JavaFX TextField Eingabe in neues Fenster übernehmen AWT, Swing, JavaFX & SWT 4
N Drag and Drop Fenster AWT, Swing, JavaFX & SWT 11
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
J Overlay Panel statt neues Fenster AWT, Swing, JavaFX & SWT 6
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1
X Neues Fenster mit Button öffnen und bearbeiten AWT, Swing, JavaFX & SWT 4
platofan23 JAVAFX zweites Fenster öffnen AWT, Swing, JavaFX & SWT 2
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
P JavaFX Fenster lädt nicht mehr AWT, Swing, JavaFX & SWT 4
I AWT Listener während man in anderem Fenster ist AWT, Swing, JavaFX & SWT 4
S JavaFX Fenster aufkommen lassen, wenn mit der Maus über bestimmten Bereich fahren AWT, Swing, JavaFX & SWT 1
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
D Swing Neues (3.) Fenster öffnen AWT, Swing, JavaFX & SWT 2
G JavaFX Fenster 1 Array übertragen zur Fenster 2 AWT, Swing, JavaFX & SWT 0
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
K Fenster welches den Sieger anzeigt AWT, Swing, JavaFX & SWT 5
O JavaFX Fenster scließen AWT, Swing, JavaFX & SWT 4
A Swing Fenster ändert Position bei Mausklick nicht AWT, Swing, JavaFX & SWT 2
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
L Input aus Sub-Fenster Startfenster übergeben AWT, Swing, JavaFX & SWT 5
B AWT Fenster schließt nicht AWT, Swing, JavaFX & SWT 2
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
U Swing Inhalt vom Fenster wird erst durch Hovern oder Klicken sichtbar AWT, Swing, JavaFX & SWT 3
A Nach klick auf Button neuen Inhalt im gleichen Fenster AWT, Swing, JavaFX & SWT 3
T Fenster schließen AWT, Swing, JavaFX & SWT 4
K JavaFX ObservableList + Fenster AWT, Swing, JavaFX & SWT 6
windl Transparentes / halbtransparentes Fenster AWT, Swing, JavaFX & SWT 1
K Fenster mittig im Vollbildschirm - ok, aber ... AWT, Swing, JavaFX & SWT 2
N Swing Sorry nicht mal ein Fenster öffnen... AWT, Swing, JavaFX & SWT 19
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
C Benutzername in GUI eingeben und nach Spiel neues Fenster Benutzername wieder anzeigen AWT, Swing, JavaFX & SWT 1
C Durch klicken von Button neues Fenster oeffnen AWT, Swing, JavaFX & SWT 18
D JavaFX (WebStart) Graues Fenster beim Start AWT, Swing, JavaFX & SWT 4
J Button vergrößert sich bei Fenster resize AWT, Swing, JavaFX & SWT 22
L Zweites Fenster mit Thread AWT, Swing, JavaFX & SWT 0
Paul15 Zwei Fenster AWT, Swing, JavaFX & SWT 23
T LayoutManager Methode, um Bildschirm(fenster) für Aktualisierungen zu blockieren bzw. freizugeben gesucht AWT, Swing, JavaFX & SWT 2
C AWT Problem mit Protokol Fenster AWT, Swing, JavaFX & SWT 0
L Daten in neuem Fenster AWT, Swing, JavaFX & SWT 2
D Mit Klick auf Button ein neues Fenster erzeugen AWT, Swing, JavaFX & SWT 11
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
A Swing Textübergabe innerhalb der Anwendung in unterschiedlichen Fenster AWT, Swing, JavaFX & SWT 8
wolfgang63 JavaFX Animation, Kreise im vorgegebem Takt durchs Fenster laufen lassen AWT, Swing, JavaFX & SWT 3
K Java Button öffnet neues Fenster AWT, Swing, JavaFX & SWT 5
Z Fenster leer, wenn ich ein JTextField erzeuge AWT, Swing, JavaFX & SWT 3
W Swing JScrollPane für mein Fenster AWT, Swing, JavaFX & SWT 4
X Swing 2 Fenster (1 im Vordergrund) AWT, Swing, JavaFX & SWT 6
X Swing Ein neues Fenster öffen aber ohne ein extra Prozess zu starten AWT, Swing, JavaFX & SWT 1
T JavaFX ControlsFX-Notification öffnet nicht wenn kein JavaFX-Fenster offen. AWT, Swing, JavaFX & SWT 1
E JavaFX JavaFX Fenster nicht schließen AWT, Swing, JavaFX & SWT 4
K JavaFX Fenster aufrufen über Menü AWT, Swing, JavaFX & SWT 1
thet1983 offne Fenster gemeinsam schließen AWT, Swing, JavaFX & SWT 8
H AWT Fenster- und JLabel-Größe automatisch anpassen AWT, Swing, JavaFX & SWT 2
Z JSlider im Modalen-Fenster AWT, Swing, JavaFX & SWT 0
Tort-E JavaFX Fenster nachladen AWT, Swing, JavaFX & SWT 1
V Fenster in einem Fenster anordnen AWT, Swing, JavaFX & SWT 7
I Zwei Fenster nebeneinander anzeigen AWT, Swing, JavaFX & SWT 2
U Fenster beim Vergörßern immer quadratsich AWT, Swing, JavaFX & SWT 7
Q Swing Fenster updaten - Hinzugefügte Komponenten darstellen AWT, Swing, JavaFX & SWT 3
E Alles in einem Fenster AWT, Swing, JavaFX & SWT 5
A Fenster erstellen AWT, Swing, JavaFX & SWT 2
I Swing Beim Fenster das kleine Symbol(ICS) ändern AWT, Swing, JavaFX & SWT 3
K JavaFX Vorschau Bereich/Fenster einer bestehenden Group AWT, Swing, JavaFX & SWT 3
G Scrollbar für das Fenster einfügen AWT, Swing, JavaFX & SWT 3
X Fenster von außen ansprechen AWT, Swing, JavaFX & SWT 7
brunothg Swing JTable -> AUTO_RESIZE_OFF aber das Fenster ausfüllen AWT, Swing, JavaFX & SWT 0
G jLabel aus anderem Fenster ändern AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen


Oben