成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Swing應(yīng)用程序框架的學(xué)習(xí)

開發(fā) 后端
本文介紹Swing應(yīng)用程序框架的學(xué)習(xí),以及介紹學(xué)Swing應(yīng)用程序框架估計(jì)主要要了解以下幾點(diǎn)。

最近為一個(gè)東西寫個(gè)界面,覺得用SWT&JFace比較麻煩,再說(shuō)JFace我也沒完全會(huì),就干脆用Swing了。不過發(fā)現(xiàn)Swing和SWT貌似還是有比較多的不同的。所以,仔細(xì)看了看。下面是收集的資料。中文的資料多半都是翻譯的Introduction To Swing Application Framework的,但是翻譯的很爛。推薦把這篇文章放到最后讀,因?yàn)檫@篇文章寫的不是很好,屬于不懂的人看了不太懂,懂的人看了就更懂的那種,簡(jiǎn)單來(lái)說(shuō)細(xì)節(jié)寫的不清楚,盲點(diǎn)很多。

學(xué)Swing應(yīng)用程序框架估計(jì)主要要了解以下幾點(diǎn):

1. 應(yīng)用程序框架提供了什么功能,如何幫助用戶管理應(yīng)用程序的各個(gè)方面的。(想必下面這個(gè)圖已經(jīng)說(shuō)明的很清楚了,大家只要照著圖,按圖索驥,把幾個(gè)類之間的關(guān)系和功能搞明白就行了)

2. Swing中的工作線程(這個(gè)主要就是要把工作線程和事件派發(fā)處理線程之間相互獨(dú)立出來(lái) ,以免造成界面假死的情況。再就是這么做了之后,就涉及到兩個(gè)線程之間的通信問題。主要就是搞清楚如何寫工作線程,以及工作線程如何和事件派發(fā)處理線程相互交互的)

3.再就是一些高級(jí)玩意了,如何把bean和某個(gè)組件進(jìn)行綁定,將界面操作省時(shí)省力的直接反映到DB中。


Swing Tutorial      Swing教程
http://java.sun.com/docs/books/tutorial/uiswing/
(主要介紹了Swing的基本構(gòu)成,基礎(chǔ)的基礎(chǔ),知道組件,容器和布局,以及Swing中的并發(fā)的可以跳過)

Using the swing application framework     如何使用Swing應(yīng)用程序框架
http://java.sun.com/developer/technicalArticles/javase/swingappfr/
(一篇快速入門的好教程)

Improve Application Performance with SwingWorker In J2SE6     如何利用SwingWorker改進(jìn)程序性能
http://java.sun.com/developer/technicalArticles/javase/swingworker/index.html
(Swing中的工作線程的問題)

Swing & Thread     Swing和線程
http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html
(還是工作線程的問題)

Introduction to swing application framework     Swing應(yīng)用程序框架介紹
https://appframework.dev.java.net/intro/index.html
(這篇文章還是介紹,主要解決快速入門中某些沒提到的盲點(diǎn)的,也是一篇總覽性的文章)

補(bǔ)充:

關(guān)于SwingTask&Task

Task是Swing應(yīng)用程序框架對(duì)SwingTask的一個(gè)補(bǔ)充之后的子類,除了添加點(diǎn)無(wú)關(guān)緊要的方法,沒多大變化,所以下面對(duì)這個(gè)表示工作的類做一個(gè)無(wú)差別性的敘述。

在Swing里面主要有三類線程,

一類啟動(dòng)其他兩類線程,所以又叫做初始線程

一類構(gòu)造UI并且處理UI上面產(chǎn)生的點(diǎn)擊等事件,所以又叫做事件派發(fā)線程,Event Dispatcher Thread,簡(jiǎn)稱EDT。這類線程必須通過SwingUtilities里面的invokeLater以及變種方法來(lái)啟動(dòng)。

還有一類就是后臺(tái)工作線程。

為了避免直接在EDT上面處理耗時(shí)的任務(wù),卡在那里,影響了UI的重畫,造成界面假死,所以要用后臺(tái)的工作線程來(lái)處理這類耗時(shí)的任務(wù)。完成了后臺(tái)耗時(shí)的任務(wù)之后,還需要把結(jié)果返回給UI線程,然后讓其在界面上面顯示。為此,設(shè)計(jì)了一個(gè)Task類,這個(gè)類包含了3個(gè)重要的三個(gè)方法。

doInBackground方法 所有耗時(shí)的工作都在這個(gè)方法內(nèi)完成,這個(gè)方法將運(yùn)行在工作線程上。完成后返回結(jié)果值,Task類自動(dòng)幫你把結(jié)果存好。

get方法 這個(gè)方法就用來(lái)取得結(jié)果的。一般在done方法里面使用這個(gè)get方法

done方法 當(dāng)doInBackground完成任務(wù),返回結(jié)果,并且被Task類自動(dòng)存好后,就會(huì)在EDT線程上面調(diào)用這個(gè)方法,你可以在這個(gè)方法里面用get方法獲得處理的結(jié)果,然后將其顯示到UI上面。

問題來(lái)了,當(dāng)你集成了Task,寫好了這3個(gè)方法,如何啟動(dòng)這個(gè)后臺(tái)任務(wù)呢?
那就需要你在其他兩個(gè)線程中,調(diào)用Task的execute方法了,當(dāng)這個(gè)方法調(diào)用之后,Task類就自動(dòng)建立一個(gè)工作線程,然后把 doInBackground放在這個(gè)線程里面跑,跑完了這個(gè)工作線程就結(jié)束了。然后,就自動(dòng)切到EDT線程上,掉用done方法,done方法中利用 get取得結(jié)果,顯示到UI上面。(如何放到UI上面顯示呢,這就要靠你在new一個(gè)Task的時(shí)候,把UI的引用傳進(jìn)來(lái)了,或者你就干脆建成一個(gè)UI類的靜態(tài)內(nèi)部類,又叫嵌入類來(lái)著吧,你就省掉傳UI的引用的麻煩了)

在Swing應(yīng)用程序框架中,你只需要實(shí)現(xiàn)一個(gè)返回Task類型的事件處理方法,框架會(huì)自動(dòng)調(diào)用Task的execute方法,你就省去手動(dòng)調(diào)用的麻煩了。

還有個(gè)問題,Task類是如何把done放到EDT上面執(zhí)行的呢? 這個(gè)我還沒弄明白。希望深入了解的人指導(dǎo)一下。

【編輯推薦】

  1. 淺談Swing中的Look&Feel
  2. Swing組件大全隨著Java風(fēng)潮一起來(lái)席卷國(guó)內(nèi)
  3. 全面比較Swing與SWT
  4. Swing程序中調(diào)用JavaFX代碼
  5. SWT和Swing代碼的區(qū)別
責(zé)任編輯:佚名 來(lái)源: csdn
相關(guān)推薦

2009-07-16 17:09:02

Swing應(yīng)用程序

2009-07-17 16:09:29

Swing桌面應(yīng)用程序

2009-07-17 10:42:06

Swing應(yīng)用程序處理函數(shù)

2009-07-10 17:24:07

Swing應(yīng)用程序

2009-07-14 11:08:42

WebRendererSwing應(yīng)用程序

2009-04-12 08:45:32

Symbian諾基亞移動(dòng)OS

2011-04-15 17:33:39

SWINGAWT

2020-10-22 10:05:26

HarmonyOS應(yīng)用程序框架

2020-11-05 11:47:52

HarmonyOS

2024-09-06 10:46:04

2009-07-15 15:35:59

Swing程序Swing性能

2011-09-05 10:27:02

Sencha Touc手機(jī)應(yīng)用Android

2018-12-03 08:25:24

2011-05-31 15:41:00

Cocoa TouchCocoaiOS

2019-02-11 09:35:04

Python應(yīng)用程序Tornado

2020-10-10 10:30:31

JavaScript開發(fā)技術(shù)

2011-12-03 20:25:53

2022-02-23 15:33:19

前端框架開發(fā)Web

2010-11-23 08:39:41

EnyowebOS 2.0WebOS

2015-04-14 09:26:52

WebWeb應(yīng)用程序框架
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲视频欧美视频 | 国产精品免费一区二区三区四区 | 久久久精品网站 | 欧美综合一区二区三区 | 国产视频一区二区 | 日本不卡一区二区三区在线观看 | 亚洲免费在线 | 日韩精品| 亚洲成人综合网站 | 日韩中文字幕在线播放 | 精品国产91亚洲一区二区三区www | 在线一区视频 | 国产在线91| 国产精品久久久久久久久久久免费看 | 五月天天丁香婷婷在线中 | 精品麻豆剧传媒av国产九九九 | 精品一区二区三区在线视频 | 91久久北条麻妃一区二区三区 | 日韩中文字幕 | 日p视频免费看 | 九九热免费观看 | 黄色国产在线视频 | 日韩精品在线一区 | 亚洲福利一区 | 久久一级免费视频 | 亚洲电影一区二区三区 | 中文字字幕一区二区三区四区五区 | 天天操天天射综合网 | 国产美女自拍视频 | 久久精品99 | 精品国产乱码久久久久久闺蜜 | 精品一区二区三区四区五区 | 久久99精品国产 | 欧美日韩国产精品一区 | a欧美| 国产精品毛片无码 | 欧美精品一区二区三区四区 在线 | 国产精品不卡 | 欧美视频区 | 久久精品国产免费 | 欧美成人h版在线观看 |