bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Swing組件相關的操作有哪些

這篇文章將為大家詳細講解有關Swing組件相關的操作有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創新互聯公司是一家專注于網站建設、網站設計與策劃設計,鶴山網站建設哪家好?成都創新互聯公司做網站,專注于網站建設十余年,網設計領域的專業建站公司;建站業務涵蓋:鶴山等地區。鶴山做網站價格咨詢:18980820575

不靈敏的圖形用戶界面會降低應用程序的可用性。當以下現象出現的時候,我們通常說這個用戶界面反應不靈敏:
◆不響應事件的現象;
◆沒有更新的現象;

這些現象在很大程度上與事件的處理方法相關,而在編寫Swing應用程序的時候,我們幾乎必然要編寫方法去響應鼠標點擊按鈕,鍵盤回車等事件。在這些方法中我們要編寫一些代碼,在運行時去觸發一些動作。常見動作包括查找,更新數據庫等。在這篇文章中通過對一個實例的分析,介紹了一些基本概念,常見的錯誤以及提出了一個解決方案。

event-dispatching thread
我們一定要記住,事件響應方法的代碼都是在event-dispatching thread中執行的,除非你啟用另一個線程。
那么,什么是event-dispatching thread呢?單一線程規則:一旦一個Swing組件被實現(realized),所有的有可能影響或依賴于這個組件的狀態的代碼都應該在event-dispatching thread中被執行。而實現一個組件有兩種方式,對頂層組件調用show(), pack(), 或者setVisible(true)。

將一個組件加到一個已經被實現的容器中。

單一線程規則的根源是由于Swing組件庫的大部分方法是對多線程不安全的。

為了支持單一線程模型,Swing組件庫提供了一個專門來完成這些與Swing組件相關的操作的線程,而這一線程就是event-dispatching thread。我們的事件響應方法通常都是由這一線程調用的,除非你自己編寫代碼來調用這些事件響應方法。在這里初學者經常犯的一個錯誤就是在事件響應方法中完成過多的與修改組件沒有直接聯系的代碼。其最有可能的效果就是導致組件反應緩慢。比如以下響應按鈕事件的代碼:

String str = null;  this.textArea.setText("Please wait...");  try {  //do something that is really time consuming  str = "Hello, world!";  Thread.sleep(1000L);  } catch (InterruptedException e) {  e.printStackTrace();  }  this.textArea.setText(str);

執行之后的效果就是按鈕似乎定住了一段時間,直到Done.出現之后才彈起來。原因就是Swing組件的更新和事件的響應都是在event-dispatching thread中完成的,而事件響應的時候,event-dispatching thread被事件響應方法占據,所以組件不會被更新。而直到事件響應方法退出時才有可能去更新Swing組件。
為了解決這個問題,有人也許會試圖通過調用repaint()方法來更新組件:

final String[] str = new String[1];  this.jTextArea1.setText("Please wait...");  this.repaint();   try {  Thread.sleep(1000L);  }catch(InterruptedException e) {  e.printStackTrace();  }  str[0] = "Done.";   jTextArea1.setText(str[0]);

關于“Swing組件相關的操作有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

網站標題:Swing組件相關的操作有哪些
當前URL:http://vcdvsql.cn/article8/gdscop.html

成都網站建設公司_創新互聯,為您提供手機網站建設、電子商務全網營銷推廣、移動網站建設、網站制作、定制開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站