日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺析Swing組件的規(guī)則

Swing的規(guī)則是:
一旦Swing組件被具現(xiàn)化(realized),所有可能影響或依賴于組件狀態(tài)的代碼都應(yīng)該在事件派發(fā)線程中執(zhí)行。

這個(gè)規(guī)則可能聽起來(lái)有點(diǎn)嚇人,但對(duì)許多簡(jiǎn)單的程序來(lái)說(shuō),你用不著為線程問(wèn)題操心。在我們深入如何撰寫Swing代碼之前,讓我們先來(lái)定義兩個(gè)術(shù)語(yǔ):具現(xiàn)化(realized)和事件派發(fā)線程(event-dispatchingthread)。

具現(xiàn)化的意思是組建的paint()方法已經(jīng)或可能會(huì)被調(diào)用。一個(gè)作為頂級(jí)窗口的Swing組件當(dāng)調(diào)用以下方法時(shí)將被具現(xiàn)化:setVisible(true)、show()或(可能令你驚奇)pack()。當(dāng)一個(gè)窗口被具現(xiàn)化,它包含的所有組件都被具現(xiàn)化。另一個(gè)具現(xiàn)化一個(gè)組件的方法是將它放入到一個(gè)已經(jīng)具現(xiàn)化的容器中。稍后你會(huì)看到一些對(duì)組件具現(xiàn)化的例子。

事件派發(fā)線程是執(zhí)行繪制和事件處理的線程。例如,paint()和actionPerformed()方法會(huì)自動(dòng)在事件派發(fā)線程中執(zhí)行。另一個(gè)將代碼放到事件派發(fā)線程中執(zhí)行的方法是使用SwingUtilities類的invokeLater()方法。
所有可能影響一個(gè)已具現(xiàn)化的Swing組件的代碼都必須在事件派發(fā)線程中執(zhí)行。但這個(gè)規(guī)則有一些例外:
◆有些方法是線程安全的:在SwingAPI的文檔中,線程安全的方法用以下文字標(biāo)記:
Thismethodisthreadsafe,althoughmostSwingmethodsarenot.(這個(gè)方法是線程安全的,盡管大多數(shù)Swing方法都不是。)
◆一個(gè)應(yīng)用程序的GUI常??梢栽谥骶€程中構(gòu)建和顯示:下面的典型代碼是安全的,只要沒(méi)有(Swing或其他)組件被具現(xiàn)化:

 
 
 
  1. publicclassMyApplication{
  2. publicstaticvoidmain(String[]args){
  3. JFramef=newJFrame("Labels");
  4. //在這里將各組件
  5. //加入到主框架……
  6. f.pack();
  7. f.show();
  8. //不要再做任何GUI工作……
  9. }
  10. }

文章題目:淺析Swing組件的規(guī)則
網(wǎng)頁(yè)URL:http://m.5511xx.com/article/cciddjp.html