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

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

?? s13.htm

?? Java2Swingt界面設(shè)計
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
<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="s12.htm">上一頁</a>][<a href="s14.htm">下一頁</a>]</p>            <p align="center"><b>第13章 滾動</b></p>            <p>  本章介紹Swing的滾動體系結(jié)構(gòu),這個體系結(jié)構(gòu)包括兩個輕量Swing容器、一個Scrollable接口、和一個JScrollBar類。其中,這兩個輕量Swing容器是JViewport和JScrollPane,設(shè)計這個Scrollable接口來支持有特殊滾動需求的組件。<br>                JViewport實(shí)例很少被實(shí)例化,也很少被直接使用,然而,本章仍將用相當(dāng)大的篇幅來介紹JViewport類,因?yàn)樗荢wing滾動體系結(jié)構(gòu)的基礎(chǔ)組件。<br>                設(shè)計JScrollPane組件來替代AWT的重量組件ScrollPane。JScrollPane在AWT的ScrollPane基礎(chǔ)上做了許多改進(jìn),包括具有配置行頭部的能力和具有指定在滾動窗格角部組件的能力。<br>                Scrollable接口是為表格、樹、文本組件和列表等包含數(shù)據(jù)行或數(shù)據(jù)列的可滾動組件而設(shè)計的。<br>                JScrollBar組件是一個用來實(shí)現(xiàn)手動滾動的滾動條。雖然Swing的JScrollPane組件在大多數(shù)滾動情況是足夠用了,但是,有時為了性能或資源的考,還必須實(shí)現(xiàn)手動滾動。在這種情況下,可以用JScrollBar組件來滾動容器的內(nèi)容。             </p>            <p> <b>13.1 JViewport</b></p>            <p>  JViewport類是Swing滾動體系結(jié)構(gòu)的基礎(chǔ)。就如它的名字所指出的那樣,JViewport的實(shí)例提供一個視口,視圖的特定區(qū)域可以顯示在這個視口中。可以操縱由視口顯示的視圖的位置,以便在不同的時刻,使不同的視圖區(qū)域出現(xiàn)在這個視口中。<br>                圖13-1所示的小應(yīng)用程序包含JViewport的一個實(shí)例,它的視圖是JLabel的一個實(shí)例。該標(biāo)簽配備了一幅比顯示圖像的視口還要大的圖像。這個小應(yīng)用程序提供了四個用于調(diào)整視口中視圖位置的按鈕。<br>                圖13-1中的左圖顯示這個小應(yīng)用程序開始時的樣子。右圖顯示出在反復(fù)激活up和left按鈕后,這個小應(yīng)用程序的梯子。應(yīng)該強(qiáng)調(diào)的是,反復(fù)激活按鈕不是滾動視口中視圖最理想的方式,但是它說明了一個視口是怎樣調(diào)整其視圖位置的。<br>                這個小應(yīng)用程序創(chuàng)建JViewport的一個實(shí)例和JLabel的一個實(shí)例。通過調(diào)用JVieweport.setView()來指定這個標(biāo)簽作為視口的視圖。這個小應(yīng)用程序還創(chuàng)建了一個ControlPanel實(shí)例(它是JPanel的一個擴(kuò)展),這個實(shí)例包含了四個用于滾動標(biāo)簽的按鈕。             </p>            <p align="center"><b>例13-1 用JViewport的一個實(shí)例來滾動一幅圖像</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              public Test() {<br>              Container contentPane = getContentPane();<br>              JViewport viewport = new JViewport();<br>              JPanel view = new JPanel();</p>            <p> view.add(new JLabel(<br>              new ImageIcon(&quot;anjinAndMariko.gif&quot;)));</p>            <p> viewport.setView(view);</p>            <p> contentPane.add(new ControlPanel(viewport), <br>              BorderLayout.NORTH);<br>              contentPane.add(viewport, BorderLayout.CENTER);<br>              }<br>              }<br>              class ControlPanel extends JPanel { <br>              private JViewport viewport;</p>            <p> private JButton[] buttons = {<br>              new JButton(&quot;up&quot;), new JButton(&quot;down&quot;),<br>              new JButton(&quot;left&quot;), new JButton(&quot;right&quot;)<br>              };</p>            <p> public ControlPanel(JViewport vp) {<br>              viewport = vp;</p>            <p> for(int i=0; i &lt; buttons.length; ++i) {<br>              add(buttons[i]);</p>            <p> buttons[i].addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              scroll(e.getActionCommand());<br>              }<br>              });<br>              }<br>              }<br>              private void scroll(String actionCmd) {<br>              Point vp = viewport.getViewPosition();</p>            <p> if(actionCmd.equals(&quot;up&quot;)) vp.y += 5; <br>              else if(actionCmd.equals(&quot;down&quot;)) vp.y -= 5; <br>              else if(actionCmd.equals(&quot;left&quot;)) vp.x += 5; <br>              else if(actionCmd.equals(&quot;right&quot;)) vp.x -= 5; </p>            <p> viewport.setViewPosition(vp);<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 13.1.1 拖動視口中的視圖</p>            <p>&nbsp;</p>            <p align="center"><b>例13-2 拖動視口中的視圖</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              public Test() {<br>              Container contentPane = getContentPane();<br>              JLabel label = new JLabel(new ImageIcon(&quot;pic.gif&quot;));<br>              JViewport vp = new JViewport();<br>              ViewportDragListener listener = <br>              new ViewportDragListener(vp);</p>            <p> vp.setView(label);<br>              vp.addMouseListener(listener);<br>              vp.addMouseMotionListener(listener);</p>            <p> contentPane.add(vp, BorderLayout.CENTER);<br>              }<br>              }<br>              class ViewportDragListener extends MouseAdapter<br>              implements MouseMotionListener {<br>              private JViewport viewport;<br>              private Point last = new Point(), scrollTo = new Point();</p>            <p> public ViewportDragListener(JViewport viewport) {<br>              this.viewport = viewport; <br>              }<br>              public void mousePressed(MouseEvent e) {<br>              last.x = e.getPoint().x;<br>              last.y = e.getPoint().y;<br>              }<br>              public void mouseMoved(MouseEvent e) {<br>              }<br>              public void mouseDragged(MouseEvent e) {<br>              Point drag = e.getPoint();<br>              Point viewPos = viewport.getViewPosition();<br>              Point offset = new Point(drag.x-last.x, drag.y-last.y);<br>              last.x = drag.x;<br>              last.y = drag.y;</p>            <p> if(viewport.contains(drag)) {<br>              scrollTo.x = viewPos.x - offset.x;<br>              scrollTo.y = viewPos.y - offset.y;<br>              viewport.setViewPosition(scrollTo);<br>              }<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 13.1.2 使用scrollRectToVisible</p>            <p>&nbsp;</p>            <p align="center"><b>例13-3 使用scrollRectToVisible()</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;<br>            import javax.swing.event.*;            <p>public class Test extends JApplet {<br>              private JButton buttons[] = {<br>              new JButton(), new JButton(), new JButton(),<br>              new JButton(), new JButton(), new JButton(),<br>              new JButton(), new JButton(), new JButton(),<br>              new JButton(), new JButton(), new JButton(),<br>              new JButton(), new JButton(), new JButton(),<br>              new JButton(), new JButton(), new JButton(),<br>              };<br>              public Test() {<br>              Container contentPane = getContentPane();<br>              JViewport viewport = new JViewport();<br>              JPanel view = new JPanel();<br>              JPanel controlPanel = new ControlPanel(buttons);</p>            <p> view.setLayout(new GridLayout(0,3));</p>            <p> for(int i=0; i &lt; buttons.length; ++i) {<br>              buttons[i].setText(&quot;button # &quot; + i);<br>              buttons[i].setPreferredSize(new Dimension(150,50));<br>              view.add(buttons[i]);<br>              }</p>            <p> viewport.setView(view);</p>            <p> contentPane.add(controlPanel, BorderLayout.NORTH);<br>              contentPane.add(viewport, BorderLayout.CENTER);<br>              }<br>              }<br>              class ControlPanel extends JPanel { <br>              private JComboBox combo = new JComboBox();</p>            <p> public ControlPanel(final JButton[] buttons) {<br>              add(combo);</p>            <p> for(int i=0; i &lt; buttons.length; ++i) {<br>              combo.addItem(&quot;button number &quot; + i);<br>              }<br>              combo.addItemListener(new ItemListener() {<br>              public void itemStateChanged(ItemEvent e) {<br>              int index = combo.getSelectedIndex();<br>              JButton button = buttons[index];<br>              Dimension size = button.getSize();</p>            <p> buttons[index].scrollRectToVisible(<br>              new Rectangle(0,0, size.width,size.height));<br>              }<br>              });<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 13.1.3 JViewport屬性</p>            <p>&nbsp;</p>            <p> 13.1.4 JViewport事件</p>            <p>&nbsp;</p>            <p align="center"><b>例13-4 對JViewport變化事件的響應(yīng)</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;<br>            import javax.swing.event.*;            <p>public class Test extends JApplet {<br>              public Test() {<br>              Container contentPane = getContentPane();<br>              JViewport viewport = new JViewport();<br>              JPanel view = new JPanel();</p>            <p> view.add(new JLabel(<br>              new ImageIcon(&quot;anjinAndMariko.gif&quot;)));</p>            <p> viewport.setView(view);</p>            <p> contentPane.add(new ControlPanel(viewport), <br>              BorderLayout.NORTH);<br>              contentPane.add(viewport, BorderLayout.CENTER);<br>              contentPane.add(new StatusPanel(viewport),<br>              BorderLayout.SOUTH);<br>              }<br>              }<br>              class StatusPanel extends JPanel { <br>              private JLabel extentLabel = new JLabel(),<br>              viewPositionLabel = new JLabel(),<br>              viewSizeLabel = new JLabel();<br>              private JViewport viewport;</p>            <p> public StatusPanel(JViewport vp) {<br>              viewport = vp;</p>            <p> setBorder(BorderFactory.createEtchedBorder());<br>              setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));</p>            <p> extentLabel.setAlignmentX(0.5f);<br>              viewPositionLabel.setAlignmentX(0.5f);<br>              viewSizeLabel.setAlignmentX(0.5f);</p>            <p> add(extentLabel);<br>              add(viewPositionLabel);<br>              add(viewSizeLabel);</p>            <p> viewport.addChangeListener(new ChangeListener() {<br>              public void stateChanged(ChangeEvent e) {<br>              Dimension extent = viewport.getExtentSize();<br>              Point viewPosition = viewport.getViewPosition();<br>              Rectangle viewSize = viewport.getViewRect();</p>            <p> extentLabel.setText(&quot;View Extent: &quot; + <br>              extent.toString());<br>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区精品秋霞影院| 久久久亚洲综合| 蜜桃一区二区三区在线观看| 欧美激情一区不卡| 538在线一区二区精品国产| eeuss国产一区二区三区| 美国十次了思思久久精品导航| 国产精品国产三级国产| 2024国产精品| 91精品国产综合久久精品| 色呦呦网站一区| 国产伦理精品不卡| 久久精品久久综合| 午夜精品国产更新| 亚洲一级二级三级在线免费观看| 亚洲国产高清aⅴ视频| 亚洲精品一区二区在线观看| 欧美人伦禁忌dvd放荡欲情| 99久久久无码国产精品| 国产成人精品网址| 国产一区二区三区综合| 视频在线观看一区| 亚洲午夜精品网| 伊人开心综合网| 自拍偷拍欧美激情| 国产精品初高中害羞小美女文| 精品国产成人系列| 91精品国产综合久久久久久久久久 | 欧美日韩激情一区| 色伊人久久综合中文字幕| 成人av电影在线观看| 国产精品99久久久久久久vr| 久久99精品久久久久婷婷| 蜜臀a∨国产成人精品| 手机精品视频在线观看| 日韩精品亚洲专区| 日韩电影在线免费看| 天使萌一区二区三区免费观看| 亚洲理论在线观看| 一区二区三区不卡视频| 一区二区三区不卡视频| 亚洲综合色婷婷| 亚洲一区二区三区中文字幕| 一区二区三区日韩| 午夜视频一区在线观看| 日韩不卡在线观看日韩不卡视频| 亚洲18色成人| 日韩中文字幕麻豆| 蜜桃一区二区三区在线| 久久精工是国产品牌吗| 国产乱码精品一区二区三区五月婷| 国内精品久久久久影院薰衣草| 国产伦精品一区二区三区免费| 国产精品1区2区| 成人18视频日本| 色视频一区二区| 7777精品久久久大香线蕉| 日韩免费福利电影在线观看| 欧美精品一区二区久久久| 久久久91精品国产一区二区精品| 国产女同性恋一区二区| 国产精品精品国产色婷婷| 一区二区三区久久| 青青青伊人色综合久久| 国模少妇一区二区三区| 成人免费黄色大片| 欧美在线免费观看亚洲| 91精品国产美女浴室洗澡无遮挡| 亚洲精品一区二区三区在线观看| 久久久久久免费毛片精品| 国产日韩影视精品| 有坂深雪av一区二区精品| 免费观看日韩电影| 国产精品 欧美精品| 91免费版在线| 7777精品伊人久久久大香线蕉最新版| 精品久久久久99| 亚洲品质自拍视频网站| 欧美a级一区二区| 99re这里只有精品6| 91精品国产品国语在线不卡| 国产嫩草影院久久久久| 亚洲成a人v欧美综合天堂下载 | 国产精品主播直播| 欧美无人高清视频在线观看| 欧美www视频| 亚洲精品日韩专区silk| 国产在线视频一区二区三区| 91激情在线视频| 久久久久国产精品麻豆ai换脸| 亚洲日本在线看| 国产精品自在欧美一区| 欧美日韩亚洲不卡| 国产亚洲精品精华液| 偷拍一区二区三区| 91小视频免费观看| 精品精品国产高清一毛片一天堂| 亚洲乱码国产乱码精品精98午夜| 久久精品国产亚洲a| 欧美亚洲一区二区在线观看| 久久久久久97三级| 丝袜诱惑制服诱惑色一区在线观看| 成人性生交大合| 精品久久久久久久久久久院品网 | 国产麻豆视频一区二区| 欧美综合一区二区| 国产欧美综合在线观看第十页| 视频一区中文字幕国产| 91视频在线看| 中文字幕第一页久久| 国内外成人在线| 欧美肥妇毛茸茸| 亚洲黄色性网站| 成人av网站大全| 国产欧美日韩中文久久| 麻豆91在线观看| 欧美一级二级三级乱码| 午夜电影网亚洲视频| 在线亚洲精品福利网址导航| 国产精品欧美极品| 国产美女一区二区三区| 欧美一级夜夜爽| 污片在线观看一区二区| 精品视频在线视频| 亚洲激情在线播放| 色就色 综合激情| 国产精品另类一区| 成人精品在线视频观看| 国产视频不卡一区| 国产 日韩 欧美大片| 国产清纯在线一区二区www| 国产丶欧美丶日本不卡视频| 久久久久久久久99精品| 久久国产成人午夜av影院| 日韩三级视频中文字幕| 奇米精品一区二区三区在线观看一| 欧美久久久久久久久中文字幕| 亚洲国产美国国产综合一区二区| 在线这里只有精品| 亚洲777理论| 欧美二区在线观看| 蜜臀精品一区二区三区在线观看 | 韩国毛片一区二区三区| 精品少妇一区二区三区日产乱码 | 大陆成人av片| 国产精品看片你懂得| 色婷婷综合久久久久中文 | 国产亚洲欧美一级| gogo大胆日本视频一区| 有码一区二区三区| 在线91免费看| 国产美女在线精品| 国产精品麻豆视频| 欧美高清性hdvideosex| 美女视频一区二区三区| 亚洲精品一区二区在线观看| 国产精品香蕉一区二区三区| 中文字幕在线免费不卡| 色综合久久99| 日本不卡一区二区三区| 久久精品在这里| 99免费精品视频| 婷婷成人激情在线网| 精品国产免费久久 | 9191久久久久久久久久久| 久久se精品一区精品二区| 国产欧美一区在线| 欧洲另类一二三四区| 奇米亚洲午夜久久精品| 亚洲国产精品成人久久综合一区| 色婷婷香蕉在线一区二区| 日韩av午夜在线观看| 国产亚洲精品aa午夜观看| 91福利精品视频| 蓝色福利精品导航| 亚洲欧洲精品一区二区三区 | 日韩精品在线网站| 不卡视频一二三四| 视频在线观看一区| 国产精品护士白丝一区av| 欧美人狂配大交3d怪物一区| 国产精品中文有码| 亚洲无人区一区| 国产日韩三级在线| 欧美日韩国产在线播放网站| 国产毛片一区二区| 亚洲一区在线观看免费| 久久婷婷色综合| 欧美视频在线播放| 成人高清免费观看| 美女国产一区二区三区| 亚洲免费在线观看| 久久九九久精品国产免费直播| 欧美三级韩国三级日本一级| 成人福利视频在线看| 久久99国产精品久久99果冻传媒| 亚洲一区二区影院| 国产精品久久久久婷婷二区次| 精品久久久影院| 欧美日韩亚洲综合在线|