亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? s02.htm

?? Java2Swingt界面設(shè)計
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
                }</p>            <p>  其思想是實現(xiàn)一個小應(yīng)用程序,這個小應(yīng)用程序包含一個main方法。這個main方法把JFrame實例化,而且還創(chuàng)建這個小應(yīng)用程序的一個實例。在調(diào)用小應(yīng)用程序的init方法后,窗體用該小應(yīng)用程序的內(nèi)容窗格來替代該窗體的內(nèi)容窗格。這個窗體接著設(shè)置其邊界和標題。并把它的可見性設(shè)置為true。<br>                 從本質(zhì)上講,這種技術(shù)會產(chǎn)生共享一個內(nèi)容窗格的應(yīng)用程序和小應(yīng)用程序。當例2-3中的代碼被編譯后,它可以既作為小應(yīng)用程序運行又可以作為應(yīng)用程序運行。<br>                應(yīng)該注意的是,作為應(yīng)用程序/小應(yīng)用程序組合實現(xiàn)的應(yīng)用程序,在使用main方法創(chuàng)建的小應(yīng)用程序?qū)嵗龝r必須非常小心。因為瀏覽器或小應(yīng)用程序閱讀器不能把這種小應(yīng)用程序?qū)嵗赃@種小應(yīng)用程序是不完善的(從技術(shù)上說,它沒有小應(yīng)用程序的相關(guān)內(nèi)容)。因此,這種小應(yīng)用程序不能使用,例如,用Applet.getImage方法來獲取一幅圖像。實際應(yīng)用中,也沒有那么多限制,因為應(yīng)用程序除借用小應(yīng)用程序的內(nèi)容窗格外不需要使用小應(yīng)用程序。例如,應(yīng)用程序通常使用AWT工具包來獲取圖像,因此,不需要使用Applet.getImage方法。</p>            <p><b>Swing提示</b></p>            <p><b>不要直接把組件添加到Swing小應(yīng)用程序或應(yīng)用程序中,也不要顯式地設(shè)置其布局管理器</b><br>                Swing小應(yīng)用程序和應(yīng)用程序都有一個JRootPane實例,該實例又含有一個稱作內(nèi)容窗格的容器。小應(yīng)用程序或應(yīng)用程序的內(nèi)容(即組件)必須添加到內(nèi)容窗格中。如果把組件直接添加到JApplet或JFrame的實例中,則會彈出一個異常信息,指出只能把組件添加到內(nèi)容窗格中。</p>            <p>  Swing小應(yīng)用程序和應(yīng)用程序都使用BorderLayout布局管理器來布局它們的JRootPane實例,并且不允許顯式地設(shè)置它們的布局管理器。如果試圖顯式地設(shè)置JApplet或JFrame的布局管理器,則會彈出一個異常信息,指出不可以顯式地設(shè)置其布局管理器。</p>            <p> <b><a name="2.2"></a>2.2 GJApp</b></p>            <p>  本書介紹的應(yīng)用程序都是在GJApp類的幫助下實現(xiàn)的,該類提供了一個狀態(tài)區(qū),并能從屬性文件中讀取資源。<a href="s02_t04.jar" target="_blank">圖2-4</a>所示的應(yīng)用程序是一個JFrame擴展,這個擴展用GJApp類來訪問一個狀態(tài)區(qū),這個狀態(tài)區(qū)顯示從GJApp.properties文件中獲取一個字符串。<br>                GJApp.properties文件定義了一個屬性:<br>                # Simple properties file<br>                statusAreaText=text in the status area<br>                例2-4列出了圖2-4所示的應(yīng)用程序的代碼。</p>            <p align="center"><b>例2-4 使用GJApp類</b></p>            <p>  import javax.swing.*;<br>                import java.awt.*;<br>                import java.awt.event.*;<br>                import java.util.*;</p>            <p>  public class Test extends JFrame {<br>                 public Test() {<br>                  Container contentPane = getContentPane();<br>                  JPanel panel = new JPanel();</p>            <p>     panel.setBorder(BorderFactory.createEtchedBorder());<br>                  contentPane.add(panel,BorderLayout.CENTER);<br>                  contentPane.add(GJApp.getStatusArea(),BorderLayout.SOUTH);</p>            <p>     GJApp.showStatus(GJApp.getResource(&quot;statusAreaText&quot;));<br>                 }<br>                 public static void main(String args[]) {<br>                  GJApp.launch(new Test(),&quot;Status Area&quot;,300,300,450,300);<br>                 }<br>                }</p>            <p>  這個應(yīng)用程序創(chuàng)建JPanel的一個實例,指定該實例為內(nèi)容窗格的中心組件。用面板來突出狀態(tài)區(qū)上面的空間,并且這個面板還有一個蝕該邊框。<br>                應(yīng)用程序通過調(diào)用static GJApp.getStatusAreas方法來獲取對GJApp狀態(tài)區(qū)的引用。狀態(tài)區(qū)指定為內(nèi)容窗格南邊的組件。<br>                static GJApp.showStatus方法以statusAreaText資源的字符串為參數(shù)把這個狀態(tài)區(qū)初始化。資源的字符串用static               GJApp.getResource方法來獲得。<br>                GJApp類有三個功能:<br>                ·初始化并顯示傳送給static launch方法的窗體。<br>                ·提供對小應(yīng)用程序狀態(tài)區(qū)面板的訪問<br>                ·從GJApp.properties文件中查找資源字符串。<br>                例2-5列出了GJApp類。 <br>            </p>            <p align="center"><b>例2-5 GJApp類</b><br>            </p>            <p>  class GJApp {<br>                 static private JPanel statusArea = new JPanel();<br>                 static private JLabel status = new JLabel(&quot;&quot;);<br>                 static private ResourceBundle resources;</p>            <p>    static {<br>                  resources = ResourceBundle.getBundle(<br>                  &quot;GJApp&quot;, Locale.getDefault());<br>                 };</p>            <p>    private GJApp() {} // defeat instantiation <br>                 public static void launch(final JFrame f, String title,<br>                        final int x, final int y, <br>                        final int w, int h) {<br>                  f.setTitle(title);<br>                  f.setBounds(x,y,w,h);<br>                  f.setVisible(true);</p>            <p>     statusArea.setBorder(BorderFactory.createEtchedBorder());<br>                  statusArea.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));<br>                  statusArea.add(status);<br>                  status.setHorizontalAlignment(JLabel.LEFT);</p>            <p>     f.setDefaultCloseOperation(indowConstants.DISPOSE_ON_CLOSE);</p>            <p>     f.addWindowListener(new WindowAdapter() {<br>                   public void windowClosed(WindowEvent e) {<br>                    System.exit(0);<br>                   }<br>                  });<br>                 }<br>                 static public JPanel getStatusArea() {<br>                  return statusArea;<br>                 }<br>                 static public void showStatus(String s) {<br>                  status.setText(s);<br>                 }<br>                 static String getResource(String key) {<br>                  return (resources == null) ? null : <br>                  resources.getString(key);<br>                 }<br>                }</p>            <p>  嚴格地說,GJApp是一個幫助類,它實現(xiàn)獨有的static方法。GJApp的實例不能實例化,這是GJApp private構(gòu)造方法強加的規(guī)定。<br>                一個static代碼塊(它在main()方法之前執(zhí)行)試圖獲得對GJApp.properties文件資源包的一個引用。在GJApp.getResource方法中使用這個資源包可以獲得一個與一個給定資源關(guān)鍵字相關(guān)的字符串。<br>                GJApp.launch方法為傳送給它的窗體設(shè)置邊界和標題,把這個窗休的可見性設(shè)置為true,并打開這個窗體。這個launch方法還配置狀態(tài)區(qū)并把窗體的缺省關(guān)閉操作設(shè)置為WindowConstants.DISPOSE_ON_CLOSE。添加到這個窗體中的窗口監(jiān)聽器在窗口關(guān)閉時會退出該應(yīng)用程序。<br>                GJApp類用getStatusArea方法訪問其狀態(tài)區(qū)面板。與小應(yīng)用程序一樣,GJApp類用showStatus方法來更新狀態(tài)區(qū)。<br>                注意:本書以后介紹的應(yīng)用程序都是在GJApp類幫助下實現(xiàn)的。但是,為了簡短些,例2-5是本書中唯一列出了GJApp類的地方。             </p>            <p><b><a name="2.3"></a>2.3 混合使用Swing組件和AWT組件</b></p>            <p>  原來的AWT只是為重量組件設(shè)計的;在AWT1.1版本發(fā)布前,還沒有輕量組件。結(jié)果,AWT不得不重做AWT,以提供輕量組件。<br>                任何軟件開發(fā)人員都可證實,把一個復(fù)雜的系統(tǒng)和以前未預(yù)見的設(shè)計組合起來不是一個簡單的任務(wù),把輕量組件合并到AWT中也不例外。直到現(xiàn)在,在一個小應(yīng)用程序或應(yīng)用程序中混用輕量組件和重量組件還是有許多問題,尤其是把重量組件嵌入輕量容器中時更是如此。</p>            <p> <b><a name="2.3.1"></a>2.3.1 層序</b></p>            <p>  組件的層序是同一容器中組件之間顯示的層次關(guān)系。<br>                如果容器是同類的(即它包含的組件都是輕量組件或都是重量組件),則按組件被添加到容器中的順序來確定其層序。第一個被添加到容器中的組件有最高的層序,即它在同一容器中所有其他組件的上面顯示。最后添加到容順中的組件的層序最低,即它在同一個容器中的所有其他組件的下面顯示。<br>                如果容器是異類的(即它既有輕量組件又有重量組件),則事情要稍微復(fù)雜些。從第1.2節(jié)“輕量組件與重量組件的比較”中,我們知道,輕量組件不是顯示在它們自己的窗口中,而是顯示在它們的重量容器的窗口中。所以,輕量組件的層序與重量容器的層序相同。如果多個輕量組件被添加到一個容器中,則這些輕量組件的層序是由組件被添加到容器中的順序來決定的。<br>                如果對此還不太明白,下面的兩個小應(yīng)用程序?qū)兄诶斫狻?lt;a href="s02_t05.htm" target="_blank">圖2-5</a>所示的小應(yīng)用程序有七個按鈕,其中四個是重量AWT按鈕,其他三個是Swing輕量按鈕。所有的重量按鈕都顯示在輕量按鈕的上面,因為輕量按鈕的層序與它們的容器的層序相同。<br>                例2-6列出了圖2-5所示的少應(yīng)用程序的代碼。</p>            <p align="center"><b>例2-6 混合使用重量組件和輕量組件</b></p>            <p>  import javax.swing.*;<br>                import java.awt.*;<br>                import java.awt.event.*;</p>            <p>  public class Test extends JApplet {<br>                 Button b1, b2, b3, b4;<br>                 JButton jb1, jb2, jb3;</p>            <p>    public void init() {<br>                  Container contentPane = getContentPane();<br>                  contentPane.setLayout(null);</p>            <p>     // create heavyweight AWT buttons<br>                  b1 = new Button(&quot;Heavyweight Button #1&quot;);<br>                  b2 = new Button(&quot;Heavyweight Button #2&quot;);<br>                  b3 = new Button(&quot;Heavyweight Button #3&quot;);<br>                  b4 = new Button(&quot;Heavyweight Button #4&quot;);</p>            <p>     // create lightweight Swing buttons<br>                  jb1 = new JButton(&quot;Swing Button #1&quot;);<br>                  jb2 = new JButton(&quot;Swing Button #2&quot;);<br>                  jb3 = new JButton(&quot;Swing Button #3&quot;);</p>            <p>     // set bounds for heavyweight buttons<br>                  b1.setBounds(10, 10, 150, 25);<br>                  b2.setBounds(110, 25, 150, 25);<br>                  b3.setBounds(210, 40, 150, 25);<br>                  b4.setBounds(310, 55, 150, 25);</p>            <p>     // set bounds for lightweight buttons<br>                  jb1.setBounds(85, 25, 150, 65);<br>                  jb2.setBounds(100, 65, 150, 65);<br>                  jb3.setBounds(115, 105, 150, 65);</p>            <p>     // add lightweight buttons<br>                  contentPane.add(jb1);<br>                  contentPane.add(jb2);<br>                  contentPane.add(jb3);</p>            <p>     // add heavyweight buttons<br>                  contentPane.add(b1);<br>                  contentPane.add(b2);<br>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区三区在线看蜜臀 | 成人av网站在线观看| 欧美高清激情brazzers| 亚洲成人激情社区| 欧美丰满高潮xxxx喷水动漫| 午夜精品福利在线| 日韩精品一区二| 国产精品系列在线播放| 中文字幕成人av| 色噜噜狠狠成人网p站| 亚洲自拍欧美精品| 欧美狂野另类xxxxoooo| 免费看日韩精品| 久久久综合视频| 色婷婷综合久久久久中文一区二区 | 久久精品国产一区二区| 欧美va亚洲va香蕉在线| 国产成人精品一区二| 亚洲色图清纯唯美| 欧美美女一区二区三区| 蜜桃视频在线一区| 国产精品美女久久久久久久| 欧美专区在线观看一区| 久久精品久久综合| 自拍av一区二区三区| 91精品国产色综合久久久蜜香臀| 国产原创一区二区| 亚洲色图一区二区| 欧美精品第1页| 99这里只有精品| 视频一区在线播放| 国产精品网站在线播放| 91国产免费看| 国产河南妇女毛片精品久久久| 一区二区三区中文在线| 欧美精品一区二区三区高清aⅴ| 成人一区在线观看| 日本欧美一区二区| 亚洲欧美色图小说| 久久精品免费在线观看| 欧美午夜电影网| 成人高清视频免费观看| 青青草国产精品97视觉盛宴| 国产精品福利av| 精品三级在线观看| 色一区在线观看| 国产美女精品人人做人人爽| 亚洲成人一区在线| 国产精品青草久久| 日韩一区二区中文字幕| 色婷婷av一区二区三区软件| 成人av在线一区二区三区| 裸体在线国模精品偷拍| 一区二区三区免费网站| 综合网在线视频| 久久精品一区二区三区四区 | 91精品国产欧美一区二区成人| 91天堂素人约啪| 成人一区在线观看| 国产精品 欧美精品| 蜜臀99久久精品久久久久久软件| 亚洲亚洲人成综合网络| 国产精品久久久久久久久果冻传媒| 2020国产精品| 精品福利av导航| 欧美一区二区三区爱爱| 欧美一区二区播放| 欧美精三区欧美精三区| 在线亚洲高清视频| 日本高清成人免费播放| 不卡视频一二三四| 国产真实乱对白精彩久久| 日本一道高清亚洲日美韩| 性久久久久久久久| 亚洲一区二区三区影院| 一区二区三区不卡视频| 亚洲国产一区二区视频| 亚洲一区成人在线| 无码av中文一区二区三区桃花岛| 亚洲超丰满肉感bbw| 亚洲成人免费av| 日本在线不卡一区| 六月丁香婷婷久久| 九九久久精品视频| 精品一区二区三区在线播放| 久久se这里有精品| 国产精品538一区二区在线| 国产精品亚洲一区二区三区在线 | 日本不卡视频在线观看| 亚洲国产精品麻豆| 五月天亚洲婷婷| 麻豆久久久久久| 久久精品国产99国产精品| 日本午夜一本久久久综合| 另类小说综合欧美亚洲| 国产一级精品在线| 9人人澡人人爽人人精品| 91福利视频在线| 91精品国产全国免费观看| 精品久久一区二区三区| 亚洲国产精品二十页| 亚洲人成在线观看一区二区| 午夜伊人狠狠久久| 激情国产一区二区| 91在线你懂得| 欧美专区日韩专区| 精品国产免费一区二区三区四区| 国产欧美精品一区| 一区二区三区精品视频| 久热成人在线视频| 99久精品国产| 日韩午夜激情av| 中文字幕第一区第二区| 天天色综合成人网| 国产乱人伦偷精品视频不卡| 日本电影亚洲天堂一区| 精品美女被调教视频大全网站| 中文字幕中文在线不卡住| 亚洲高清免费视频| 国产传媒日韩欧美成人| 欧美日韩精品一区二区天天拍小说| 精品乱人伦小说| 一区二区三区日韩精品视频| 黄一区二区三区| 欧美在线看片a免费观看| 久久精品一区八戒影视| 五月婷婷另类国产| 99re视频这里只有精品| 欧美一区二区精品| 亚洲另类在线一区| 国产一区激情在线| 欧美精品亚洲二区| 中文字幕在线不卡视频| 激情都市一区二区| 欧美日韩精品一区二区天天拍小说| 日本一区免费视频| 麻豆精品国产91久久久久久| 91免费版pro下载短视频| 26uuu久久天堂性欧美| 午夜激情综合网| 色欧美日韩亚洲| 中文字幕在线一区| 国产精品一区二区免费不卡| 欧美精品少妇一区二区三区| 一区二区三区中文字幕精品精品| 国产精品99久久久久久久女警 | 久久99精品久久久久婷婷| aaa欧美大片| 亚洲视频资源在线| 91视视频在线直接观看在线看网页在线看 | 日韩欧美在线影院| 亚洲国产中文字幕| 欧美性高清videossexo| 中文字幕日韩av资源站| 99这里只有久久精品视频| 中文字幕一区二区三区色视频| 国产91丝袜在线播放0| 韩国理伦片一区二区三区在线播放| 麻豆精品久久久| 亚洲精品在线电影| 亚洲一级不卡视频| 色呦呦日韩精品| 综合色中文字幕| 不卡一区二区中文字幕| 欧美精彩视频一区二区三区| 国产一区二区调教| 亚洲精品一区二区三区99| 另类综合日韩欧美亚洲| 精品剧情v国产在线观看在线| 九色综合狠狠综合久久| 日韩精品一区二区三区在线观看| 亚洲国产中文字幕| 欧美日韩成人综合在线一区二区| 亚洲国产欧美在线| 91麻豆精品国产91久久久久久久久 | 日本欧洲一区二区| 日韩一级片在线观看| 老司机一区二区| 精品国偷自产国产一区| 国产一区二区三区电影在线观看| 久久久99精品久久| www.日韩大片| 亚洲线精品一区二区三区| 欧美三级日韩三级| 免费成人小视频| 欧美极品aⅴ影院| 91麻豆视频网站| 亚洲高清免费观看高清完整版在线观看 | 91麻豆精品国产91久久久资源速度| 免费的国产精品| 国产欧美日韩另类一区| 成人激情免费网站| 亚洲国产精品影院| 日韩美女视频在线| 成人国产精品视频| 亚洲国产成人tv| 久久―日本道色综合久久| 99视频一区二区三区| 日韩av电影免费观看高清完整版 | 亚洲精品成人少妇|