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

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

?? s02.htm

?? Java2Swingt界面設(shè)計
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<SCRIPT LANGUAGE="JavaScript" SRC="/-fs0/sys/pop-up.js"></SCRIPT><SCRIPT LANGUAGE="JavaScript" SRC="/-fs0/sys/pop-up-all.js"></SCRIPT><html><head><title>易都網(wǎng)--Java 2 圖形設(shè)計卷Ⅱ:SWING</title><LINK rel="stylesheet" href="../../../_public/javaa.css"><meta http-equiv="Content-Type" content="text/html; charset=GBK"><script language="JavaScript" src="../../../_public/javaa.js"></script><meta name="keywords" content="Java,JSP,ASP,PHP,J2EE,EJB,JavaScript,C/C++,ASM,CSS,HTML,XML,網(wǎng)絡(luò)安全,MySQL,ACCESS"></head><body bgcolor="#FFFFFF"><table border=0 cellpadding=0 cellspacing=0 width="100%">  <tbody>   <script language="javascript">print2()</script>  <tr>     <td width="100%">       <table bgcolor=#EEEEEE border=0 cellpadding=3 cellspacing=0 width="100%">        <tbody>         <tr>           <td class=f1 id=thetd width="100%">             <p>[<a href="index.html" target="_self">目錄</a>][<a href="s01.htm" target="_self">上一頁</a>][<a href="s03.htm" target="_self">下一頁</a>]</p>            <p align="center"><b>第2章 Swing的基本知識</b></p>            <p>  本章介紹開發(fā)Swing小應(yīng)用程序和應(yīng)用程序時要用到的Swing的基本知識。<br>                雖然Swing是AWT的擴(kuò)展,但是兩者的基本概念還是有許多不同之處。首先,Swing小應(yīng)用程序和應(yīng)用程序的實(shí)現(xiàn)方式與AWT小應(yīng)用程序和應(yīng)用程序的實(shí)現(xiàn)方式有所不同。而且,如果開發(fā)人員想要開發(fā)同時使用AWT組件和Swing組件的小應(yīng)用程序或應(yīng)用程序,則還必須注意混合使用輕量組件和重量組件所帶來的許多問題。<br>                Swing是線程不安全的,這就是說,在大多數(shù)情況下,只能從事件派發(fā)線程中訪問Swing組件。本章將介紹采用這種方法的原因及使用這種方法所帶來的結(jié)果,另外,本章還介紹了Swing提供的一些機(jī)制,這些機(jī)制使其他線程能從事件派發(fā)線程中執(zhí)行代碼。             </p>            <p><b><a name="2.1"></a>2.1 小應(yīng)用程序與應(yīng)用程序</b></p>            <p>  使用Swing組件的小應(yīng)用程序和應(yīng)用程序應(yīng)該分別擴(kuò)展Swing的JApplet(java.applet.Applet的一個擴(kuò)展)和JFrame(java.awt.Frame的一個擴(kuò)展)。JApplet和JFrame除具有它們的超類所提供的功能外,還提供對Swing的支持。雖然可以分別使用Applet類和Frame類來實(shí)現(xiàn)Swing的小應(yīng)用程序和應(yīng)用程序,但是,這樣很可能出現(xiàn)事件處理問題和重新繪制問題。因此,應(yīng)當(dāng)總是使用JApplet和JFrame來實(shí)現(xiàn)Swing的小應(yīng)用程序和應(yīng)用程序。<br>                JApplet和JFrame都是只包含一個組件的容器,這個組件是JRootPane的一個實(shí)例,JRootPane在12.2節(jié)“JRootPane”中介紹。目前,只需知道JRootPane包含一個稱作為內(nèi)容窗格的容器即可。內(nèi)容窗格包含與特定的小應(yīng)用程序或應(yīng)用程序有關(guān)的所有內(nèi)容。這里,內(nèi)容指包含在小應(yīng)用程序和或應(yīng)用程序中的組件。實(shí)際上,這就是說小應(yīng)用程序和應(yīng)用程序必須把組件添加到內(nèi)容窗格中而不是把它們直接添加到小應(yīng)用程序或應(yīng)用程序(或根窗格)中。而且,我們不應(yīng)該直接為Swing小應(yīng)用程序或應(yīng)用程序設(shè)置布局管理器。因為組件添加到內(nèi)容窗格中,所以應(yīng)該為內(nèi)容窗格而不是小應(yīng)用程序或應(yīng)用程序設(shè)置布局管理器。<br>                包含一個JRootPane實(shí)例的Swing容器重載用來添加組件和設(shè)置布局管理器的方法。這些方法會彈出提醒人們的異常信息:不能把組件直接添加到包含一個JRootPane實(shí)例的Swing容器中,也不能為該容器設(shè)置布局管理器。             </p>            <p><a name="2.1.1"></a><b>2.1.1 小應(yīng)用程序</b></p>            <p>  <a href="s02_t01.htm" target="_blank">圖2-1</a>所示的小應(yīng)用程序包含一個JLabel實(shí)例,該實(shí)例有一個圖標(biāo)和一些文本。該小應(yīng)用程序擴(kuò)展JApplet并通過調(diào)用JApplet.getContentPane()方法來獲得對其內(nèi)容窗格的引用。這個標(biāo)簽隨后被實(shí)例化并被添加到這個內(nèi)容窗格中。</p>            <p>   <applet code="Test.class" archive="s02_t01.jar" width=300 height=150>              </applet><br>                    圖2-1 Swing小應(yīng)用程序</p>            <p>   例2-1列出了圖2-1所示的小應(yīng)用程序的代碼。</p>            <p align="center"><b>例2-1 一個Swing小應(yīng)用程序</b></p>            <p>  import javax.swing.*;<br>                import java.awt.*;<br>                import java.awt.event.*;</p>            <p>  public class Test extends JApplet {<br>                 public void init() {<br>                  Container contentPane = getContentPane();<br>                  /*原文<br>                  Icon icon = new ImageIcon(&quot;swing.gif&quot;,&quot;An animated               GIF of Duke on a swing&quot;);<br>                  JLabel label = new JLabel(&quot;Swing!&quot;,icon,SwingConstants.CENTER);<br>                  */<br>                  //修改后<br>                  JLabel label = new JLabel(&quot;Swing!&quot;, <br>                  new ImageIcon(getImage(getCodeBase(),&quot;swing.gif&quot;),&quot;An               animated GIF of Duke on a swing&quot;),<br>                   SwingConstants.CENTER);<br>                  contentPane.add(label, BorderLayout.CENTER);<br>                 }<br>                }</p>            <p>  JApplet類使用BorderLayout的一個實(shí)例作為其內(nèi)容窗格的布局管理器。為了強(qiáng)調(diào)這一點(diǎn),例2-1的小應(yīng)用程序指定其布局約束條件為BorderLayout.CENTER,它使標(biāo)簽在內(nèi)容窗格中居中顯示。用BorderLayout布局組件的缺省約束條件是BorderLayout.CENTER,所以,在該小應(yīng)用程序中指定這個布局約束條件不是必須的。<br>                <b>注意:</b>當(dāng)在Internet Explorer中使用例2-1的小應(yīng)用程序時,必須使用BorderConstraints.CENTER。(我根本就找不到)<br>                JApplet的內(nèi)容窗格用BorderLayout的一個實(shí)例來布局組件。記住這一點(diǎn)是很重要的,因為java.applet.Applet與JApplet不同,它使用FlowLayout的一個實(shí)例來布局組件。             </p>            <p><b><a name="2.1.2"></a>2.1.2 JApplet類</b></p>            <p>  Swing的JApplet類擴(kuò)展java.applet.Applet并實(shí)現(xiàn)Accessibility接口和RootPaneContainer接口。Accessibility接口是可訪問包的一部分,而RootPaneContainer接口(如其名字所指出的)是一個包含根窗格的容器。RootPaneContainer接口被所有包含一個JRootPane實(shí)例的Swing容器所實(shí)現(xiàn)。<br>                類總結(jié)2-1中列出了JApplet提供的public和protected方法</p>            <p><b>類總結(jié) 2-1 JApplet</b></p>            <p>  擴(kuò)展:java.applet.Applet<br>                實(shí)現(xiàn):javax.accessibility.Accessible、RootPaneContainer<br>                1.構(gòu)造方法<br>                public JApplet()<br>                JApplet中提供了一個不帶參數(shù)的構(gòu)造方法。由于小應(yīng)用程序是由瀏覽器(或小應(yīng)用程序閱讀器)進(jìn)行實(shí)例化的,所以,正常情況下,不需要直接把JApplet的一個實(shí)例進(jìn)行實(shí)例化。要了解直接實(shí)例化一個JApplet實(shí)例的情況,請參見2.1.5節(jié)“小應(yīng)用程序/應(yīng)用程序組合”。<br>                2.方法<br>                (1)從java.awt.Container中重載而獲得的方法<br>                protected void addImpl(Component,Object,int)<br>                public void setLayout(LayoutManager)<br>                public void addNotify()<br>                public void removeNotify()<br>                上面列出的四種方法都是重載java.awt.Container類中的方法而得到。<br>                AddImpl()是最終把組件添加到容器中的方法。如果直接把組件添加到小應(yīng)用程序中,那么JApplet.addImpl()將彈出一個異常信息。這個異常中所顯示的消息是定制的(注:消息是通過JApplet的擴(kuò)展的名字定制的)。例如,如果例2-1小應(yīng)用程序中的標(biāo)簽直接添加到該小應(yīng)用程序中,那么異常信息將如下顯示:<br>                java.lang.Error:Do not use Test.add()use Test.getContentPane().add)instead<br>                  at javax.swing.JApplet.createRootPaneException(JApplet.java:198)<br>                  at javax.swing.JApplet.addImpl(JApplet.java:220)<br>                  at java.awt.Container.add(Container.java:179)<br>                  at Test.init(Test.java:11)<br>                與JApplet重載addImpl()的原因一樣,JApplet也重載setLayout()。如果設(shè)置了小應(yīng)用程序的布局管理器,setLayout()將會彈出一個異常信息。如果修改例2-1的小應(yīng)用程序,讓該小應(yīng)用程序試圖設(shè)置它的布局管理器,則將彈出帶有下面錯誤消息的異常信息:<br>                java.lang.Error:Do not use Test.setLayout()use Test.getContentPane().setLayout()instead<br>                  at javax.swing.JApplet.createRootPaneexception(JApplet.java:198)<br>                  at javax.swing.JApplet.setLayout(JApplet.java:244)<br>                  at Test.init(Test.java:10)<br>                  at sun.applet.AppletPanel.run(AppletPanel.java:287)<br>                  at java.lang.Thread.run(Thread.java:474)<br>                當(dāng)實(shí)例化一個組件的對等組件時,將調(diào)用addNotify()方法。JApplet重載addNotify()以激發(fā)鍵盤事件并把小應(yīng)用程序的可見性設(shè)置為true。<br>                (2)根窗格/內(nèi)容窗格/玻璃窗格<br>                protected JRootPane createRootPane()<br>                protected boolean isRootPaneCheckingEnabled()<br>                protected void setRootPaneCheckingEnabled(boolean)<br>                public Container getContentPane()<br>                public Component getGlassPane()<br>                public JLayeredPane getLayeredPane()<br>                public JRootPane getRootPane()<br>                public void setContentPane(Container)<br>                public void setGlassPane(Component)<br>                public void setLayeredPane(JLayeredPane)<br>                public void setRootPane(JRootPane)<br>                Swing小應(yīng)用程序通過調(diào)用protected JApplet.createRootPane方法,接著,這個方法又調(diào)用setRootPane()方法來創(chuàng)建根窗格。createRootPane方法可以被JApple的擴(kuò)展所重載,以便替代JRootPane類的擴(kuò)展作為該小應(yīng)用程序的根窗格。<br>                如前所述,把組件直接添加到JApplet的一個實(shí)例中或顯式地設(shè)置其布局管理器都可能會信息彈出一個異常。然而,有時必須把JRootPane的一個實(shí)例直接添加到小應(yīng)用程序中,并且不信息。通過調(diào)用以boolean值為為參數(shù)的setRootPaneCheckingEnabled()方法來設(shè)置一個標(biāo)志,該標(biāo)志跟蹤是否允許根窗格檢查。如果這個boolean值是true,則說明允許根窗格檢查,如果這個boolean值是false,則說明禁止根窗格檢查。<br>                isRootPaneCheckingEnabled()方法返回最后傳送給setRootPaneCheckingEnabled()方法的boolean值。               <br>                注意:setRootPaneCheckingEnabled()和isRootPaneCheckingEnabled()都是protected方法。雖然不可能把組件直接添加到JApplet的一個實(shí)例中或顯式地設(shè)置其布局管理器,但是,實(shí)現(xiàn)可以控制是否允許根窗格檢查的JApplet的擴(kuò)展是可能的。這種功能使JAppelt的擴(kuò)展能夠在需要時直接添加組件或設(shè)置小應(yīng)用程序的布局管理器。<br>                實(shí)際中,很少重載JApplet.createRootPane(),JApplet的擴(kuò)展也很少用setRootPaneCheckingEnabled()來直接添加組件或設(shè)置小應(yīng)用程序的布局管理器。<br>                上面列出的第二組方法是由RootPaneContainer接口定義的,這些方法能夠獲取和設(shè)置包含在JRootPane的一個實(shí)例中的容器。JRootPane和RootPaneContainer將在第12章和12.2節(jié)“JRootPane”               中介紹。<br>                (3)可訪問的相關(guān)內(nèi)容/菜單欄/鍵盤事件/更新<br>                public AccessableContext getAccessableContext()<br>                public JMenuBar getMenuBar()<br>                public void setMenuBar(JMenuBar)<br>                proteted voidprocessKeyEvent(KeyEvent)<br>                public void update(Graphics)<br>                getAccessibleContext()返回AccessibleContext的一個實(shí)例,這個實(shí)例把小應(yīng)用程序的可訪問信息提供給可訪問工具。<br>              -------- <br>                JApplet實(shí)例可以有一個菜單欄,它是由setJMenuBar方法指定的。注意,Swing小應(yīng)用程序能有一個菜單欄,而AWT小應(yīng)用程序卻不能。參見圖2-2。<br>                實(shí)際上有兩種方法把菜單欄添加到Swing小應(yīng)用程序中的方法。一種方法當(dāng)然是調(diào)用JApplet.setJMenuBar,另一種方法是獲得對小應(yīng)用程序根窗格的引用,然后把菜單欄直接添加到根窗格中。<br>                重載ProcessKeyEvent()來處理鍵綁定問題。有關(guān)Swing組件中鍵擊處理的更多信息,請參見4.8節(jié)“鍵出處理”。<br>                重載JApplet.update方法以便直接調(diào)用paint()。缺省時,AWT組件將實(shí)現(xiàn)它們的update方法以便擦除背景,然后調(diào)用paint()。這種技術(shù)在組件反復(fù)更新時,會導(dǎo)致許多閃爍。有關(guān)繪制和更新AWT組件的更多信息,請參見《Java               2 圖形設(shè)計,卷Ⅰ:AWT》。</p>            <p><b>Swing提示</b></p>            <p><b>JApplet和JFrame的內(nèi)容窗格使用一個BorderLayout實(shí)例</b><br>                如果你用AWT開發(fā)過應(yīng)用程序,就一定熟悉這樣一個事實(shí):java.applet.Applet使用一個FlowLayout實(shí)例作為其布局管理器,而java.awt.Frame則使用一個BorderLayout實(shí)例作為其布局管理器。<br>                由于AWT小應(yīng)用程序和應(yīng)用程序使用不同的布局管理器,所以,當(dāng)把小應(yīng)用程序移植為應(yīng)用程序時或把應(yīng)用程序移植為小應(yīng)用程序時,就可造成混亂,這里還沒有涉及到實(shí)現(xiàn)一個小應(yīng)用程序和應(yīng)用程序組合的情況。相比之下,Swing在小應(yīng)用程序和應(yīng)用程序的內(nèi)容窗格中使用相同的布局管理器(即一個BorderLayout實(shí)例)。             </p>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香网亚洲国际| 日韩欧美精品三级| 欧美高清视频不卡网| 精品国产污网站| 亚洲亚洲人成综合网络| 国内外成人在线| 色婷婷久久久综合中文字幕| 26uuu欧美日本| 亚洲五月六月丁香激情| 成人av电影在线网| 欧美挠脚心视频网站| 欧美精品一区二区三区高清aⅴ| 中文字幕一区二区三区在线观看 | 成人综合激情网| 91精品中文字幕一区二区三区| 久久久久久电影| 日韩激情视频在线观看| 亚洲国产另类av| 国内精品久久久久影院色| 色天使色偷偷av一区二区| 欧美精品一区二区不卡| 日本成人中文字幕在线视频| 欧美亚洲日本国产| 91麻豆精品久久久久蜜臀| 亚洲精品免费在线| 国产在线一区二区综合免费视频| 欧美三级乱人伦电影| 国产色综合久久| 国模娜娜一区二区三区| 欧美一区二区三区在线看| 亚洲午夜激情av| 91九色最新地址| 国产精品第13页| 国产成人午夜精品5599| 日韩欧美一级二级三级| 午夜精品久久一牛影视| 国产不卡高清在线观看视频| 精品久久久久99| 狠狠色丁香婷婷综合| 91精品国产91久久久久久最新毛片 | 色哟哟亚洲精品| 国产精品国产三级国产aⅴ原创 | 伦理电影国产精品| 3d动漫精品啪啪1区2区免费| 午夜精品视频一区| 欧美成人精品福利| 国产精品18久久久久久久网站| 精品久久99ma| 成人黄色综合网站| 亚洲欧美电影一区二区| 欧美图区在线视频| 美女一区二区在线观看| 久久日一线二线三线suv| 福利一区福利二区| 亚洲免费在线看| 欧美日韩国产色站一区二区三区| 日韩中文字幕1| www国产成人| 91免费视频网址| 日韩电影在线观看一区| 久久亚洲私人国产精品va媚药| 国产999精品久久久久久| 亚洲欧美日韩久久精品| 欧美午夜电影在线播放| 免费久久99精品国产| 久久久精品tv| 在线观看av一区二区| 久久精品国产成人一区二区三区| 国产日韩av一区| 欧美熟乱第一页| 国产一区二区三区日韩| 亚洲精品乱码久久久久| 日韩欧美亚洲另类制服综合在线| 成人午夜精品一区二区三区| 亚洲综合成人网| 亚洲精品一线二线三线| 波多野结衣一区二区三区| 日日摸夜夜添夜夜添精品视频| 久久久亚洲午夜电影| 欧美亚洲自拍偷拍| 国产一区二区三区美女| 亚洲午夜久久久久中文字幕久| 精品1区2区在线观看| 欧美亚洲一区二区在线| 国产69精品久久久久毛片| 午夜天堂影视香蕉久久| 国产精品美日韩| 日韩女优电影在线观看| 欧美性色黄大片| 国产精品12区| 日本欧美韩国一区三区| 久久久久成人黄色影片| 欧美高清激情brazzers| 色噜噜狠狠色综合中国| 大白屁股一区二区视频| 狂野欧美性猛交blacked| 亚洲尤物在线视频观看| 亚洲欧美电影院| 欧美国产禁国产网站cc| 久久影院电视剧免费观看| 在线精品国精品国产尤物884a| 另类专区欧美蜜桃臀第一页| 亚洲v日本v欧美v久久精品| 国产日韩影视精品| 精品免费视频一区二区| 91精品国产aⅴ一区二区| 欧美在线免费视屏| 成人精品小蝌蚪| 成人av在线一区二区| 国产酒店精品激情| 国产一区二区三区久久久| 日日夜夜精品免费视频| 亚洲观看高清完整版在线观看| 1024成人网色www| 亚洲私人影院在线观看| 亚洲视频一二区| 亚洲男帅同性gay1069| 欧美韩国一区二区| 欧美国产一区二区| 久久久久久一二三区| 国产欧美一区二区精品久导航 | 成人天堂资源www在线| 国产成人午夜精品5599| 大桥未久av一区二区三区中文| 床上的激情91.| 色综合中文字幕| 在线观看欧美黄色| 欧美视频一区在线观看| 欧美日本在线一区| 欧美一个色资源| 精品第一国产综合精品aⅴ| 久久久久9999亚洲精品| 中文字幕免费一区| 中文字幕亚洲一区二区va在线| 亚洲欧美综合色| 亚洲成人免费视频| 久久疯狂做爰流白浆xx| 国产精品99久久久久久似苏梦涵| 国产99久久久国产精品潘金网站| 成人av网站在线| 欧美三级日韩三级| 精品国产青草久久久久福利| 亚洲国产岛国毛片在线| 一区二区三区在线看| 日本欧美一区二区三区乱码| 国产精品亚洲一区二区三区在线| aaa亚洲精品一二三区| 欧美三级日本三级少妇99| 26uuu欧美日本| 一区二区三区在线视频免费观看| 日韩高清不卡在线| 国产成人亚洲综合色影视| 色天天综合久久久久综合片| 精品国精品自拍自在线| 亚洲视频在线一区观看| 国产自产2019最新不卡| 91香蕉视频mp4| 日韩一区二区三免费高清| 亚洲国产精品传媒在线观看| 午夜欧美大尺度福利影院在线看| 久久99久久久久| 日本二三区不卡| 久久久久久久久久久黄色| 一区二区三区在线视频播放| 国产老妇另类xxxxx| 欧美日本视频在线| 中文字幕高清不卡| 免费观看久久久4p| 99精品国产热久久91蜜凸| 日韩欧美不卡一区| 亚洲自拍欧美精品| 99视频精品全部免费在线| 日韩小视频在线观看专区| 亚洲三级在线看| 国产成人免费视频网站 | 在线成人免费视频| 日韩美女久久久| 国产a久久麻豆| 日韩免费视频一区| 亚洲成年人网站在线观看| 成人成人成人在线视频| 日韩欧美中文字幕制服| 亚洲va中文字幕| 国产精品99久久久久| 欧美男人的天堂一二区| 中文字幕一区二区三区在线观看| 激情欧美一区二区三区在线观看| 欧美午夜一区二区三区| 久久久影视传媒| 免费成人小视频| 欧美四级电影网| 中文字幕佐山爱一区二区免费| 国产一区亚洲一区| 日韩欧美不卡在线观看视频| 日韩制服丝袜先锋影音| 欧美日韩极品在线观看一区| 亚洲美女淫视频| 色婷婷久久99综合精品jk白丝| 国产精品无人区| 粉嫩av一区二区三区粉嫩|