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


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

Re: GUI-Update über Swing-EDT

From "Christian H. Kuhn" <qno-news@qno.de>
Newsgroups de.comp.lang.java
Subject Re: GUI-Update über Swing-EDT
Date 2016-07-16 15:24 +0200
Message-ID <duuqu9F1a5U1@mid.individual.net> (permalink)
References <duo028Fb4qaU1@mid.individual.net> <nm8j8b$r9c$1@newsreader4.netcologne.de> <durqo5F8hcgU1@mid.individual.net> <nmbhss$ub4$1@newsreader4.netcologne.de>

Show all headers | View raw


Am 15.07.2016 um 22:43 schrieb Patrick Roemer:
> https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html

Ich hab nachher ne Stunde S-Bahn vor mir, da lese ich das. Bis dahin
machen mich Zugriffsrechte wahnsinnig.

> #getChildIndexed() & Co. gehören auch
> dahin. 

Genau. getName() ist in meiner Anwendung unkritisch, weil Namen von
GUI-Komponenten nur im Konstruktor gesetzt und nie mehr verändert
werden, da entstehen keine Konflikte, solange nicht lesend auf ein noch
nicht fertig konstruiertes Objekt zugegriffen wird. Ich hoffe, dass die
VM sowas verhindert und ein Objekt erst da ist, wenn der Konstruktor
fertig ausgeführt ist?

Aber TestUtils soll ja allgemeint verwendbar sein, also muss auch
getName() abgesichert werden.

public final class TestUtils {
   private static String staticName;
   public static Component getChildNamed(final Component _parent, final
String _name) {
        class Test {
            private Object object;
            public void setObject(final Object _object) {
                object = _object;
            }
        }
	String name;
	StringBuilder nameBuilder = new StringBuilder();
        try {
            SwingUtilities.invokeAndWait(new Runnable() {

                @Override
                public void run() {
                    _parent.getName(); // das geht
                    name = _parent.getName(); // das geht nicht
		    test.setObject(_parent.getName()); // das geht
		    staticName = _parent.getName(); // das geht
		    nameBuilder.append(_parent.getName()); // das geht
                }
            });
        } catch (InvocationTargetException | InterruptedException e) {
            // TODO
        }
        if (_name.equals(_parent.getName())) {
            return _parent;
        }
   (...)
   }
}

run() kann also auf die Variablen der Umgebung, aus der invokeAndWait()
aufgerufen wird, lesend zugreifen, nicht aber nicht zuweisen.

run() kann statischen Variablen der Klasse zuweisen. Ergebnisausgabe in
eine statische Variable der Klasse versorgt mich wieder mit eben den
Konkurrenzsituationen, die ich eigentlich lösen möchte.

Ansonsten kann run() anscheinend Variablen von außerhalb keinen Wert
zuweisen. Es können aber deren Methoden aufgerufen werden. Also muss ich
außerhalb ein geeignetes Objekt instantiieren und dem einen Wert
zuweisen (hier einen leeren Stringbuilder, Wert wird mit append()
gesetzt; für einen int fällt mir schon nichts einfaches mehr ein). Gibt
es kein geeignetes Objekt, funktioniert die o.g. Klasse Test.

Gibt es da denn keinen einfachen Weg?

lg
QNo

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