⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s13.htm

📁 提供给JAVA编程者图形界面卷
💻 HTM
📖 第 1 页 / 共 3 页
字号:
              viewPositionLabel.setText(&quot;View Position: &quot; + <br>              viewPosition.toString());<br>              viewSizeLabel.setText(&quot;View Size: &quot; + <br>              viewSize.toString());<br>              revalidate();<br>              }<br>              });<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.5 JViewport类总结</p>            <p>&nbsp;</p>            <p>13.1.6 AWT兼容</p>            <p>&nbsp;</p>            <p align="center"><b>例13-5 使用JScrollPane</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>              JLabel view = new JLabel(new ImageIcon(&quot;cutlery.jpg&quot;,<br>              &quot;A picture of cutlery&quot;));<br>              JScrollPane sp = new JScrollPane(view);</p>            <p> contentPane.add(sp);<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 13.2 JScrollPane</p>            <p>&nbsp;</p>            <p> 13.2.1 滚动窗格的头部</p>            <p>&nbsp;</p>            <p align="center"><b>例13-6 为滚动窗格的头部指定视图</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              public Test() {<br>              Container contentPane = getContentPane();<br>              JLabel columnHeaderView = new JLabel(<br>              new ImageIcon(&quot;horizontalRuler.jpg&quot;,<br>              &quot;horizontal ruler&quot;));<br>              JLabel rowHeaderView = new JLabel(<br>              new ImageIcon(&quot;verticalRuler.jpg&quot;,<br>              &quot;vertical ruler&quot;));<br>              JLabel view = new JLabel(<br>              new ImageIcon(&quot;grapes.jpg&quot;,<br>              &quot;grapes&quot;));</p>            <p> JScrollPane sp = new JScrollPane(view);</p>            <p> sp.setColumnHeaderView(columnHeaderView);<br>              sp.setRowHeaderView(rowHeaderView);</p>            <p> sp.setViewportBorder(<br>              BorderFactory.createRaisedBevelBorder());</p>            <p> contentPane.add(sp);<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center"><b>例13-7 设置头部视口</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 void init() {<br>              Container contentPane = getContentPane();<br>              JViewport columnHeaderViewport = new JViewport();<br>              JViewport rowHeaderViewport = new JViewport();</p>            <p> JLabel columnHeaderView = new JLabel(<br>              new ImageIcon(&quot;horizontalRuler.jpg&quot;));<br>              JLabel rowHeaderView = new JLabel(<br>              new ImageIcon(&quot;verticalRuler.jpg&quot;));<br>              JLabel view = new JLabel(<br>              new ImageIcon(&quot;strawberry.jpg&quot;));</p>            <p> JScrollPane sp = new JScrollPane(view);</p>            <p> sp.setToolTipText(<br>              &quot;Drag the headers to drag the picture!&quot;);</p>            <p> HeaderViewDragListener verticalHeaderListener = <br>              new HeaderViewDragListener(sp, <br>              SwingConstants.VERTICAL);</p>            <p> HeaderViewDragListener horizontalHeaderListener = <br>              new HeaderViewDragListener(sp, <br>              SwingConstants.HORIZONTAL);</p>            <p> columnHeaderViewport.addMouseListener(<br>              horizontalHeaderListener);<br>              columnHeaderViewport.addMouseMotionListener(<br>              horizontalHeaderListener);</p>            <p> rowHeaderViewport.addMouseListener(<br>              verticalHeaderListener);<br>              rowHeaderViewport.addMouseMotionListener(<br>              verticalHeaderListener);</p>            <p> // headers must be set before header views<br>              sp.setColumnHeader(columnHeaderViewport);<br>              sp.setRowHeader(rowHeaderViewport);</p>            <p> sp.setColumnHeaderView(columnHeaderView);<br>              sp.setRowHeaderView(rowHeaderView);</p>            <p> contentPane.add(sp);<br>              }<br>              }<br>              class HeaderViewDragListener extends MouseAdapter<br>              implements MouseMotionListener,<br>              SwingConstants {<br>              private Point last = new Point();<br>              private JScrollPane scrollpane; <br>              private int orientation;</p>            <p> public HeaderViewDragListener(JScrollPane sp, int orient) {<br>              scrollpane = sp;<br>              orientation = orient;<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>              JViewport headerViewport = (JViewport)e.getSource();<br>              JViewport scrollpaneViewport = scrollpane.getViewport();<br>              Dimension viewSize = scrollpaneViewport.getViewSize(),<br>              extent = scrollpaneViewport.getExtentSize();</p>            <p> Point drag = e.getPoint();<br>              Point offset = new Point(drag.x-last.x, drag.y-last.y);<br>              Point headerPosition = new Point(), viewportPosition;</p>            <p> viewportPosition = scrollpaneViewport.getViewPosition();</p>            <p> if(orientation == HORIZONTAL) {<br>              int nextX = viewportPosition.x - offset.x;<br>              int rightEdge = extent.width + nextX;</p>            <p> if(nextX &gt; 0 &amp;&amp; rightEdge &lt; viewSize.width) {<br>              headerPosition.x = nextX;<br>              viewportPosition.x = nextX;<br>              }<br>              }<br>              if(orientation == VERTICAL) { <br>              int nextY = viewportPosition.y - offset.y;<br>              int bottomEdge = extent.height + nextY;</p>            <p> if(nextY &gt; 0 &amp;&amp; bottomEdge &lt; viewSize.height) {<br>              headerPosition.y = nextY;<br>              viewportPosition.y = nextY;<br>              }<br>              }<br>              headerViewport.setViewPosition(headerPosition);<br>              scrollpaneViewport.setViewPosition(viewportPosition);</p>            <p> last.x = drag.x;<br>              last.y = drag.y;<br>              }<br>              }</p>            <hr size="1" noshade>            <p>&nbsp;</p>            <p> 13.2.2 滚动窗的角部</p>            <p>&nbsp;</p>            <p align="center"><b>例13-8 指定滚动窗格的角部的组件</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import javax.swing.*;<br>            import javax.swing.border.*;            <p>public class Test extends JApplet {<br>              public Test() {<br>              Container contentPane = getContentPane();<br>              JLabel columnHeaderView = new JLabel(<br>              new ImageIcon(&quot;horizontalRuler.jpg&quot;));<br>              JLabel rowHeaderView = new JLabel(<br>              new ImageIcon(&quot;verticalRuler.jpg&quot;));<br>              JLabel view = new JLabel(<br>              new ImageIcon(&quot;anjinAndMariko.gif&quot;));</p>            <p> JScrollPane sp = new JScrollPane(view);</p>            <p> JPanel corners[] = {<br>              new JPanel(), new JPanel(),<br>              new JPanel(), new JPanel()<br>              };<br>              String cornerConstants[] = {<br>              ScrollPaneConstants.UPPER_LEFT_CORNER,<br>              ScrollPaneConstants.LOWER_LEFT_CORNER,<br>              ScrollPaneConstants.UPPER_RIGHT_CORNER,<br>              ScrollPaneConstants.LOWER_RIGHT_CORNER,<br>              };<br>              Border border = BorderFactory.createEtchedBorder();</p>            <p> for(int i=0; i &lt; corners.length; ++i) {<br>              corners[i].setBorder(border);<br>              sp.setCorner(cornerConstants[i], corners[i]);<br>              }</p>            <p> sp.setColumnHeaderView(columnHeaderView);<br>              sp.setRowHeaderView(rowHeaderView);<br>              contentPane.add(sp);<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 13.2.3 JViewport属性</p>            <p>&nbsp;</p>            <p> 13.2.4 JViewport事件</p>            <p>&nbsp;</p>            <p> 13.2.5 JViewport类总结</p>            <p>&nbsp;</p>            <p align="center"><b>例13-9 透明和不透明滚动窗格</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 void init() {<br>              Container contentPane = new CustomContentPane();<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -