<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java究竟怎么玩?

      天地程序已定棋,人間大數待變局

        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理

      在任何一款桌面應用中,都難免會遇到讓用戶輸入文字或者特殊字符的情況發生,所以輸入法的支持與文本框組件的存在就變得必不可少。

      由于Java具有桌面應用開發能力,它的圖形組件中也當然配備有文本框,因而無論是繼承自TextComponent的Text系組件抑或繼承自JTextComponent的JText系組件都提供了讓用戶輸入數據的功能。

      現在的疑問是,雖然TextComponent與JTextComponent相類似,但兩者的父類卻并不同級。TextComponent直接繼承自Component,但Component已經是所有Java圖形組件的公共父類,JTextComponent的父類JComponent卻繼承自Container,而Container的父類才是Component。

      為什么會這樣呢?如果JTextComponent直接繼承TextComponent難道不好嗎?沒錯,不好,或者說不能。除了Swing與AWT運行原理造成的差異與組件關系的統一性需求外,造成這樣情況的理由中還有一點至關重要,那就是不光JTextComponent不能,即便我們想在java.awt包外重載TextComponent也不能。原因在于,雖然TextComponent類并非final,但它的唯一構造函數卻是default的,這意味著即便不同包中的類繼承了它,也不能構造,根本無法重載。

      更何況,就算可以重載的JTextComponent,也與TextComponent一樣存在著一些很麻煩的默認配置問題(就更不要說重載JTextField抑或TextField了)。最主要的是,用它們制作標準文本框固然游刃有余,但如果我們需要的文本框不那么標準,甚至需要某些“奇形怪狀”到只要求輸入文字,但根本就算不上文本框的組件時,那么它們勢必更加捉襟見肘。

      那么,我們要怎樣才能滿足這種近乎于“變態”的要求呢?

      很簡單,自己“畫”個文本框出來就好了,因為是“畫”的,所以想它怎樣,便是怎樣,因為是憑空繪制,也沒有利用現成Swing組件繪制時的不便。

      所以能這樣做,就在于Java獲得輸入法支持的關鍵點不在TextComponent與JTextComponent,而是java.awt.im包下的相關組件,更具體地說,只要你實現了InputMethodListener與InputMethodRequests兩尊大神,那么所有Component都可以支持輸入法,又何必專情于TextComponent與JTextComponent?

      閑話少說,現在我就直接用Canvas來“畫”個文本框,給大家瞧瞧。

       

      TextCanvas.java

       

       

      運行效果如下圖:

       

      00

       

      怎么樣?這時你在TextCanvas中進行輸入操作,是不是與JTextField或TextField里相差無幾呢?——什么?你說就算“重復發明輪子”也應該有個限度,已經有JTextField與TextField了,你再寫一個有什么用?

       

      嗯,您很聰明,單純的繪制文本框確實沒有任何意義,但是,如果有一系列直接通過AWT繪制的組件與其相呼應呢?——比如,偶在LGame-Simple中制作的那一系列UI組件……

       

      那么事情,就會變成如下這個樣子。

       

      02

       

      怎么樣呢?如上圖所示,這是一個純繪制的界面,無論文本框的字體,大小,顏色乃至透明度,貼圖都可以隨性切換(甚至逆天的將兩個文本框疊在一起也可以), 而這樣一個純繪制出的文本框能夠獲得輸入法支持,意味著什么呢?這意味著,一個相對于Swing能耗更少,效率更高的類Swing體系已經搭建成型了!(當然,相對的功能也更少,不過事無兩利嘛……)

       

      PS:如上所述,LGame-Simple-0.2.5版Text系組件將獲得輸入法支持,中文或其它語言的輸入已經沒有任何問題。(此版預計同Android版LGame一道于12月中下旬發布……不過,那是理想狀態,事實上偶欠著的事情挺多,盡力看看……)

       

      嗯,其實PS中的話才是最主要的……

       

      posted on 2009-11-18 23:02  cping  閱讀(2337)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品一区二区制服| 精品精品国产国产自在线| 人妻少妇邻居少妇好多水在线| 久久精产国品一二三产品| 久章草在线毛片视频播放| 国产福利永久在线视频无毒不卡| 亚洲AV蜜桃永久无码精品| 久久亚洲国产五月综合网| 久久精品免视看国产成人| 色偷偷女人的天堂亚洲网| 精品国产日韩亚洲一区| 精品国产一区二区三区蜜臀| 桐乡市| 日韩av一区二区不卡在线| 精品人妻日韩中文字幕| 国产三级精品三级在线看| 国产av国片精品一区二区| 成人无码潮喷在线观看| 久热天堂在线视频精品伊人| 妇女自拍偷自拍亚洲精品| 国产人妻人伦精品婷婷| 国产自产在线视频一区| 国产成人午夜一区二区三区| 日韩av综合中文字幕| 国产99视频精品免费视频36| 欧洲无码一区二区三区在线观看| 亚洲精品无码你懂的网站| 亚洲日韩一区二区| 国产又色又爽又刺激在线观看 | 无码福利写真片视频在线播放| 久久天堂综合亚洲伊人HD妓女| 性xxxxxx中国寡妇mm| 人妻久久久一区二区三区| 中国猛少妇色xxxxx| 亚洲综合成人一区二区三区| 国内精品无码一区二区三区| 疯狂做受XXXX高潮国产| 亚洲欧洲成人a∨在线| 亚洲欧美成人a∨观看| 狠狠色综合久久丁香婷婷| 国产精品久久久久久人妻精品|