Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.java > #12994

Re: GUI-Update über Swing-EDT

From Patrick Roemer <sangamon@netcologne.de>
Newsgroups de.comp.lang.java
Subject Re: GUI-Update über Swing-EDT
Date 2016-07-15 22:43 +0200
Organization news.netcologne.de
Message-ID <nmbhss$ub4$1@newsreader4.netcologne.de> (permalink)
References <duo028Fb4qaU1@mid.individual.net> <nm8j8b$r9c$1@newsreader4.netcologne.de> <durqo5F8hcgU1@mid.individual.net>

Show all headers | View raw


Responding to Christian H. Kuhn:
> QChessClock greift auf die GUI ausschließlich per notifyObservers() und
> darin implementiert über die verschiedenen update() zu. QChessClock
> weiss nichts über die Art seiner Oberfläche. Deshalb kommt ein Aufruf
> von notifyObservers() (sowieso nicht, ist zu lang und zu komplex und
> könnte den EDT blockieren) oder der einzelnen update() per
> invokeAndWait() nicht infrage.

Natürlich soll QChessClock nichts von Swing wissen. Aber irgendwo musst
Du für den Zugriff auf die GUI halt in den EDT. Und das wäre bei Deinem
aktuellen Codestand halt in den Implementierungen der
#update()-Methoden, wo auf die GUI-Komponenten zugegriffen wird.

> QChessClockJavaAVTest greift nur an einer Stelle anders als per
> notifyObservers() direkt schreibend auf die GUI zu.

Was ist mit #doClick()? Ich bin äußerst zuversichtlich, dass das auch in
den EDT gehört - sonst hätte ich ja auch keine "lost clicks" gesehen. :)
Im von Dir angesprochenen JW-Artikel wird das auch so gemacht. Und auch,
wenn die das nicht so machen: #getChildIndexed() & Co. gehören auch
dahin. Einfach alles, was irgendwie auf GUI-Komponenten zugreift
und/oder GUI-Zustandsänderungen triggert.

> Ich merke, dass ich immer noch in der Vorstellung lebe, dass Objekte und
> mit ihnen alle ihre Eigenschaften und Methoden in einem Thread leben.
> Für Objekt und Felder mag das gelten, Methoden leben aber in dem Thread,
> der sie aufruft.

Das ist eine sehr eigenwillige Beschreibung, und allerspätestens für
Felder grundfalsch. :)

Du hast Dir mit der Schachuhr ein Projekt ausgesucht, wo Du Concurrency
verstehen musst. Mit wolkigen Metaphern kommst Du nicht weit, die
Thematik ist eher wenig intuitiv. Schau vielleicht mal in die
entsprechende Lesson im Oracle-Tutorial:

https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html

Viele Grüße,
Patrick

Back to de.comp.lang.java | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-14 01:09 +0200
  Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-14 18:26 +0200
  Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-14 19:47 +0200
    Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 00:08 +0200
      Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 22:04 +0200
        Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 22:53 +0200
        Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 23:09 +0200
          Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 23:44 +0200
            Countdown Timer Design (was: JUnit Test von JButton: Action wird nicht erkannt) "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 23:44 +0200
              Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 12:44 +0200
              Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 15:49 +0200
                Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 17:03 +0200
                Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 15:59 +0200
        Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 14:59 +0200
          Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 16:06 +0200
          Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-19 18:59 +0200
            Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 22:35 +0200
              Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-20 13:00 +0200
                Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-23 20:36 +0200
                Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-23 23:15 +0200
          Re: JUnit Test von JButton: Action wird nicht erkannt Wanja Gayk <brixomatic@yahoo.com> - 2016-07-19 23:02 +0200
            Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-20 12:33 +0200
    GUI-Update über Swing-EDT (was: JUnit Test von JButton: Action wird nicht erkannt) "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 12:03 +0200
      Re: GUI-Update über Swing-EDT Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 22:43 +0200
        Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 23:18 +0200
        Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 15:24 +0200
          Re: GUI-Update über Swing-EDT Patrick Roemer <sangamon@netcologne.de> - 2016-07-16 16:42 +0200
            Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 23:05 +0200
              Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 16:02 +0200

csiph-web