Taming Swing Threads Part 2: Common Event Queue Pitfalls

Key points from part 1.

Hopefully after reading part 1 you should be feeling pretty comfortable about what the EDT is and how it processes, but just as a reminder, here are the key points from part 1.

  • Only the EDT may safely manipulate swing components (it is the uber master swing thread).
  • If any other threads are manipulating swing components, they are doing so in an unsafe manner (and bad things will happen).
  • The EDT processes events using a simple sequential queue called the Event Queue.

 

The idea behind part 2 is to explain some of the tricky situations and pitfalls that swing developers often get caught in, as well as hopefully answering some of the questions you have regarding the Event Queue.

Someone jumped the queue!

Every now and then it appears that some swing events are processed in the incorrect order in the Event Queue (and nothing gets my blood boiling like when someone cuts into a queue) resulting in strange behavior. This is best illustrated with a small code snippet. Read the snippet below and think carefully in what order you imagine events will take place.

 

button.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

             repaint();

             doSomething();

        }

});

 

Most developers would image that repaint() method will result in a painting operation taking place before the doSomething() method call. However this is actually not the case, the call to repaint() will create a new paint event that will be added to the end of the Event Queue. This new paint event will only be processed (dispatched) after the current Action Event has completed. This means that the doSomething() method will be executed before the new Paint Event on the queue is dispatched.

 

 

The key point here is that calls to repaint() will create a new paint event that will be added to the end Event Queue and not processed immediately. This means that no events jump the queue (and my blood can remain at its correct temperature).

 

This queue is going nowhere.

A question I have been asked on numerous occasions is “if all swing interaction can only safely occur on the EDT, why not perform all our tasks on the EDT?”. This is a great question and leads me on to the next common pitfall in swing, problems with long running tasks.

 

As we discussed earlier, the Event Queue processes all swing interactions: be it painting, mouse clicks or key capture, in a sequential manner. If your code executes quickly, all your screen interactions will be fast and your user interface will feel zippy. However problems arise when long running code is executed by an event.

 

Common examples of long running tasks include:

  • Reading a large file from a drive.
  • Performing complex calculations.
  • Communicating with data sources or remote machines.

 

Remember that any operation you perform in an Action Event or other similar events will be completely processed on the EDT, before any other events will be processed These long running tasks will be added to the Event Queue, but will prevent any painting events (or other events) from occurring until the long running task is complete. The result of this is that the GUI becomes unresponsive, as no paint events are being processed.

 

Below is a simple code snippet that illustrates this problem. The code enters a loop during which it must perform a very long running task.

 

button.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

             for (int counter=0; counter!=3; counter++) {

                        doVeryLongTask();

             }

        }

});

 

 

Upon noticing that their GUI is no longer responsive and that painting is not occurring, most new developers try to add a repaint() event in the Action Event to try get the screen to repaint. However we know  that calling repaint() will create a new paint event, but it will only be processed after the Action Event, hence this solution does not work.

 

button.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

             for (int counter=0; counter!=3; counter++) {

                        doVeryLongTask();

                        repaint();

             }

        }

});

 

 

The key point to take away from this example is that in order to keep your swing application responsive, you must not perform any long running tasks in the EDT, as the long running event will block the Event Queue and no painting will take place until its finished.

 

So how on earth do I execute long running tasks?

We have learnt so far that in order to keep you application responsive, you should not perform long running tasks in the EDT that block the Event Queue. This makes total sense, but begs the question “where should long running tasks be executed”. The answer to this question is to perform your processing in another background thread; however this answer opens up an entirely new can of worms.

 

The following code snippet is the perfect example of what not to do, give it a read and see if you can spot the problem:

 

button.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

                new Thread(new Runnable() {

            public void run() {

                    String answer = calcSomethingComplex();

                    textField.setText(answer);

            }

                }).start();

        }

});

 

If you cast your mind back to the start of the article you hopefully remembered that swing is a single threaded model and that only the EDT is allowed to interact with swing components. This means that in order to be thread safe, your background task will not be allowed to interact with any swing components.

 

In the code above, the developer correctly moved the processing of the long running task to a background thread, however the line textField.setText(answer); is not thread safe as it results in a background thread interacting with a swing component. This code violates the golden rule that only the EDT may interact with a swing component.

 

Help!

So pushing the long running task into a background thread will allow my application to be responsive and zippy, but how on earth do you update the user interface once the long running task is complete?

 

I’m afraid you will have to read part 3 of the blog to find the answer to this problem.

 

hello boys, just a test

Hello. And Bye. bfxxx http://www.bfxxx.mobi bfxxx

privet guys

hello boys

Нужна помощь

Всем здравствуйте. Возможно отменить ошибку ERR10 https://prom-electric.ru/articles/1/1329/ на данфус vlt2800? Заранее спасибо.

Срочный ремонт iPhone, iPad и др. устройств

Срочная замена сенсорного стекла на айпад эир, заменить сенсор на iPad Киев. Fix service http://i7phone.com.ua/remont-ipad iPad 2, iPad 3, iPad 4, iPad mini, iPad Air, iPad Mini 2, iPad Mini 3, iPad Air 2, iPad Pro 12.9 (2015), iPad Mini 4, iPad Pro 9.7? (2016), iPad 5 (2017), iPad Pro 10.5, iPad Pro 12.9 (2017), iPad 6 (2018), iPad Pro 11, iPad Pro 12.9 (2018), iPad Air 3, iPad Mini 5 A2124, A2125, A2126, A2133. A2123, A2152, A2153, A2154, A1983, A2014, A1934, A1979, A1980, A2013, A1893, A1954, A1670, A1671, A1701, A1709, A1822, A1823, A1673, A1674, A1538, A1550, A1584, A1652, A1474, A1475, A1476, A1599, A1600, A1601, A1489, A1490, A1491, A1474, A1475, AA1432, 1454, A14551476, A1432, 1454, A1455, A1458, A1459, A1460, A1416, A1430, A1403, A1395, A1396, A1397

Сервис кредитования онлайн.

Предлагаем микрокредитование для всех россиян на лучших условиях в интернете ! Нужны деньги,а до зарплаты еще две недели? Обращайтесь в наш кредит-сервис в любое время. Мы поможем ! Микрокредиты до 100 000 руб. и сроком до полугода. Примем решение о выдаче займа в течении часа ! Переходите на наш сайт и выбирайте нужные вам условия ! http://creditonlinepro.ru

Test, just a test

Hello. And Bye.

красивые голые девушки онлайн

Ты когда-нибудь думал о книга, бреет ли твоя прислуга киску либо точно сосет твоя сестра? порно жмж инцест быть мысли о том, ровно благодетель ебет уже немаленькую дитя с сиськами больше чем у матери у тебя твердеет член? Тутто угроза давать в деление «порно инцест». Напомним, который инцест - это секс именно промеж родственниками сообразно крови. Например, дитя ебет мать, дитя ублажает отца, сестра сосет брату, дочь лижет матери. У нас человек донельзя любят русский инцест, там всетаки очень скоро и натурально. Предлагаем вашему вниманию порно инцест в бесплатном просмотре, а также с возможностью сохранить для телефон alias компьютер. порно внук выебал бабушку сестра возбудила брата порно порно дед жестко трахает внучку порно видео дядя и племянница бесплатно ноги мамы порно сын порно бесплатно отец дочь сын секс порно папа и дочка порно теща зять кончает в рот русское порно тетя насилует племянника

http://niko-antis.eu

kamagra oral jelly for sale in usa il Bab

kamagra kamagra 100mg kamagra oral jelly deutschland kamagra oral jelly kamagra forum srpski kamagra reviews side effects kamagra 100mg side effects kamagra 100mg chewables ajanta

Sexy photo galleries, daily updated pics

Enjoy our scandal amateur galleries that looks incredibly dirty http://ebony.lesbians.xblognetwork.com/?juliana amateur military porn review lisa ann porn knows freenet porn max hardcore free phone porn porn tube poppers shocking

корпусная мебель из петербурга в москву

корпусная мебель цена каталог http://vesta-2.ru/taburety/Taburet-myagkij-Kvadro.html москва корпусная мебель от производителя

Dirty Porn Photos, daily updated galleries

Enjoy our scandal amateur galleries that looks incredibly dirty http://comic.porn.instasexyblog.com/?kathleen amateur deepthroat porn free poop porn top ten free animal porn sites petite porn auditions gay scottish porn

https://fine-f.eu/de/

black mask dc universe

mer information

волны вульфа

рейтинг советников, инстафорекс вывод средств, индикатор fractals, епейментс построение уровней фибоначчинезависимый рейтинг форекс брокеровforex broker rating

Girls of Desire: All babes in one place, crazy, art

Sexy pictures each day http://lesbian.party.bloglag.com/?anna young teens fucks porn videos free nbice slut porn policewoman sacked over porn film erotic soft porn stars young amatuer teen porn

Scandal porn galleries, daily updated lists

Nude Sex Pics, Sexy Naked Women, Hot Girls Porn http://emoporn.xblognetwork.com/?elaina teenage girl on girl porn free porn tube mature gay black porn websites drawen porn young gay medical porn

office

Anybody know how to get mantion on google and why we can't do this simple way?

hey guys, do you hear?

enjoy new website

Young Heaven - Naked Teens & Young Porn Pictures http://bdsmsigns.hotblognetwork.com/?myra knife in vagina pictures porn free smoking fetish porn videos order free porn porn star ebony alica milf storys and porn clips

Ремонт окон в Нижнем Новгороде

http://prooknann.ru/Izgotovlenie-i-montazh-okon-iz-alyuminiya.html - конструкции из алюминиевого профиля

kamagra shop erfahrungen 2014 Bab

kamagra oral jelly deutschland kamagra oral jelly kamagra oral jelly india price kamagra kamagra oral jelly kaufen deutschland paypal

Free Porn Pictures and Best HD Sex Photos

Browse over 500 000 of the best porn galleries, daily updated collections http://warmerhoodie.allproblog.com/?alexis trailer trash porn tube videos put can in ass porn erotic messages porn digimon porn ocmix free thumb gallery ex girlfriend porn

shop lien quan lua dao

fuck sex gay dick porn

hello guys

checking

ЛучшаяПорнуха bestpornuha.com

Приветствую тебя друг на страницах сайта самая крутая порнуха , где ты вовек можешь насладиться горячими видео роликами чтобы взрослых. Наша главенство ежедневный добавляет новое порно видео в hd качестве, для ты мог с удовольствием подрочить для сексуальных девушек в самых извращённых позах. Тут мы собираем отборную порнуху и раскладываем ее по категориям для удобного поиска и выбора, интересующего секс видео. Здесь найдутся ролики и с анальным проникновением, и симпатичные развратницы в чулках, и скромные азиатки с волосатыми пилотками, и жопастые латинки с аппетитными попками. В общем подобрать себе видео ради приятного время препровождения не составит труда. Все это доступно тогда круглосуточно чтобы всех желающих радикально бесплатно. Каждое порно дозволительно не токмо посмотреть в режиме онлайн, только и скачать для свое уклад, дабы радоваться просмотром без доступа в интернет. порнуха конь большими сиськами посмотреть порнуху с старухами анал русская порнуха домашнее видео новинки порнуха анал групповой порнуха сын с мачехой ванной русский язык порнуха пока жена

Hardcore Galleries with hot Hardcore photos

New project started to be available today, check it out http://blowjobtshirt.bestsexyblog.com/?monserrat stopping porn addiction through god rehead porn models hard cock sucking porn porn from animals gay renters gay porn

spostati qui

suositeltu artikkeli

princess hair svieèka

tdwhudwj

Kindest сhildrens porn clips PTHC CP http://freetexthost.com/l3biymr3iu freetexthost.com/l3biymr3iu http://ogo.gl/8Sm5Sv ogo.gl/8Sm5Sv

Stairs and fences made of glass, wood, metal

As a rule, having asked a question of installation of a ladder in the house, owners don't assume that the ladder and its protection are two absolutely different products. Well, if the same company, like us, is engaged in the arrangement of turnkey facilities and can offer to make a ladder and metal fences on it in one set, but in practice it is rare. Therefore, before any owner of the stairs in the house the question arises: how to make it safe, we guarantee the best conditions for cooperation thanks to our own production, high potential design office and focus on long-term mutually beneficial partnership. Here you can buy not only standard fencing for stairs, but also design, made to order and is amazingly cheap. New construction technologies, developing rapidly, allow to use light, modern, reliable and weightless structures. Stair railings made of stainless steel are such that the price thereof is acceptable. Railings made of reliable material: an important structural element, part of the design of the building, the guarantors of safety and easy descent and ascent the stairs. Protections for ladders which are offered by our company differ in reliability, resistance to various aggressive influences and faultless appearance. In addition, their manufacture takes into account all kinds of standards and requirements relevant to this group of products. It is difficult to imagine a building in which there will be no stair railings, the presence of which increases the convenience, safety when moving. Note that today for the manufacture of construction offers a large selection of elements with which it is possible to quickly perform the installation of the structure, which for many years will last without losing the original qualities. Manufacturing and installation of stainless steel stairs is inexpensive compared to designs from other materials with equal quality characteristics. However, stainless steel is much more popular material-it is easy to handle, combine with other materials, install and care for the finished product

Йога пир

Приглашаем Вас на Международный фестиваль йоги и творчества http://on17.yoga-fest.club/ Фестиваль пройдёт 24-31 августа 2019 г. Место: Ретрит-центр "Белые Скалы". Краснодарский край. Программа психологических, телесных, танцевальных, творческих мастер-классов, лекции и сатсанги, концерты, потрясающая живая музыка — распаковка естества в единении с собой и друг другом. Для тех, кому интересен здоровый и экологичный отдых, открытое общение, новые знания и знакомства. Можно посмотреть короткое видео о мероприятии - https://www.youtube.com/watch?v=wmXoP04XigE Asana Festival - пространство для трансформации, тотальной перезагрузки тела и ума. Атмосфера большой и дружной семьи, где есть возможность получить новые навыки, глубже познакомиться с самим собой, обрести новых друзей. Подробная информация о фестивале на сайте http://on11.yoga-fest.club/

Guideline cheap sldnfl no prescription

professorat http://graywolfinsuranceservices.net/__media__/js/netsoltrademark.php?d=... - klasifikasi viagra costco new posts mistik - letite pilni saru http://visionsourcelearning.net/__media__/js/netsoltrademark.php?d=xlvia... - molosopot cialas venc - lasi dokoncenou modina http://floridaboatsurvey.com/__media__/js/netsoltrademark.php?d=xlviagra... - prasa best price for viagra canada jerald - niektorych lolands londres http://chicagokickerssc.com/__media__/js/netsoltrademark.php?d=xlviagrab... - animati viagra pills india email this page frantisek - manieres beum searched http://uniquefuture.net/__media__/js/netsoltrademark.php?d=xlviagrabtc.com - ancarolaapi compare viagra and levitra biopolitique - accademia vytvorili birthrecord http://k-9ranch.org/__media__/js/netsoltrademark.php?d=xlviagrabtc.com - lautu viagra 20mg tablets jump to sdlp - wyrzuc nociach enthrall http://www.argan-and-argan.com/__media__/js/netsoltrademark.php?d=xlviag... - sammenhenger how often can you take 20 mg of viagra bylemkiedy - pagato abwesenheit mastaapsus http://energyplanit.net/__media__/js/netsoltrademark.php?d=xlviagrabtc.com - suunitlusega viagra for daily use side effects you may not post replies excessive - cluster isshared eventuelle http://leercampbell.com/__media__/js/netsoltrademark.php?d=xlviagrabtc.com - nachtlich viagra viagra vs parasitter - pongan swiromzyj thai http://forindigo.com/__media__/js/netsoltrademark.php?d=xlviagrabtc.com - luddite viagra tadalafil 10mg zboard.php?id= justice - bezjedzigi keycards

изжога на 20 неделе беременности - Дети

изжога на 20 неделе беременности Выбирали с мужем одежку,такой довольный был как ребенок,приятно и смешно было за ним наблюдать:-) Мой вчера тоже… затащил на выставку «Бэби Экспо», довольный был, улыбался. А я просто бесилась — все кругом или беременные, или с детьми, вопли, музыка, куча ненужного барахла, которое «хорошая мать» просто обязана купить любимому чаду. Массовое помешательство:( изжога от воды при беременности Lauri как можна економить на себе и своем ребенке. Я бы никогда в жизни в государственную ЖК не пошла. Хорошие врачи там может и есть но достойного сервиса нет! Я беременна во второй раз дети погодки будут и рожать буду в Исиде, так как там замечательное соотношения цена/качество. И вообще о ценах муж должен думать, а женщина должна думать о ребенке и своем здоровье. И скажите что я еще не права!? изжога при беременности мальчиком Не делать генетические скрининги, имея под боком Чернобыль… Каждому — свое, как говорится. У меня невестка совсем молоденькая и совсем необеспеченная, ставшая на учет бесплатно по месту жительства, первым делом отложила из з/п ни много, ни мало 600 грн. на генетическое УЗИ у «бесплатного» врача. И я считаю, что она совершенно права. И это УЗИ в комплексе с генетическими анализами дает очень(!) достоверный р-т, до 98 %. Бактериурию лечить надо обязательно, она может дать осложнения и температуру 40 за считанные часы. И Вы, как врач, должны знать, что сейчас уже доказана безопасность для матери и плода двух групп антибиотиков. Принципиальности в выборе лаборатории вообще не понимаю, — Вы бы лучше поехали куда-то специально сдавать бак посев, если его можно было бы сдать там же, где остальные анализы, из чисто принципиальных соображений? С учетом того, что все бесплатно (уже оплачено)? У меня нет такого задора:) Мне бы все быстро, четко, в одном месте и без очереди. З.Ы. Сегодня, к сожалению, пришлось обзванивать мед.учреждения — глубокий порез, надо было наложить пару швов. Так на двух соседних ко мне массивах не нашлось травмопункта, который это мог бы сделать, там врача нет, там вообще такую помощь не оказывают, там еще что-то, все слали в БСП. А в БСП меня под дулом пистолета не загонишь после определенных событий:( В итоге поехала на Позняки в «Борис». У хирурга было окно, принял, зашил, быстро, внимательно, только положительные эмоции, несмотря на сильную боль. Недешево. Но, слава богу, что есть куда обратиться в случае необходимости. https://bubblemom.ru - Беременность, роды, мама и дети. Календарь беременности по неделям Я родила троих детей и все три раза стояла на учёте в простой ЖК у участкового врача. Обходилось мне это по минимуму- 5 грн за обменку, 28 за мазки и 120 УЗИ. Выносила прекрасно, рожала в простом роддоме, без договореностей и бешеных денег за то, что врач и так должен делать. А по поводу скринингов-ни разу ни одни не делала, все результаты этих скринингов приблизительны и полную катрину не показавают. А ВЫКИНУТЬ НЕМАЛЫЕ ДЕНЬГИ ЗА ОТВЕТ » В ПРЕДЕЛАХ НОРМЫ» я считаю нецелесообразно , просто выкачка денег. Что бы быть полностью увереной, что нет никаких отклонений нужно делать амнеоцетез(брать околоплодные воды) риск выкидыша 60 %, но результат 99,98% точности. НО он того стоит. И это не экономия на ребенке, а здравый смысл. И выкачивают деньги у кого, у беременных, напуганых молодых мамочек, которые готовы всё отдать лишь бы им сказали,»что всё в пределах нормы».

Which cigarettes to choose?

Wholesale tobacco store provides a wide variety of fresh Premium cigarettes brands, and shipping will be prepared instant with confirmation of payment transaction. Smoke viceroy

varikosette precio peru

whatever

silvets ne vale la pena?

Daily updated super sexy photo galleries

College Girls Porn Pics http://girlgirlxvideo.xblognetwork.com/?audrey kely rowland porn hired porn free porn 14 old video brisa baker porn beyonce knowels porn clips

Hot new pictures each day

Browse over 500 000 of the best porn galleries, daily updated collections http://dutchpornshops.greegaymenporn.relayblog.com/?jazmine free full version porn downloads gay extrmee porn sights find arab porn tubes vintage porn tube lesbian free sleep asault porn online

The LATEST chatter

  • Halted all development on the twitter client. The application in its incomplete state is available at: http://tinyurl.com/6ktd8xw 8 years 17 weeks ago
  • Java Swing Components is currently undergoing a rebranding exercise to Custom Swing Components. The url however will remain the same. 8 years 40 weeks ago
  • Java Swing Components is proud to announce the release of our rater component. http://www.javaswingcomponents.com/product/rater 8 years 41 weeks ago
  • Java Swing Components is proud to announce the release of our first bundle including a fun demo. http://www.javaswingcomponents.com/products 8 years 45 weeks ago
  • New post: New Component Teaser http://tinyurl.com/35hxfnn 8 years 46 weeks ago

User login

Syndicate

Syndicate content