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

📄 s13.htm

📁 提供给JAVA编程者图形界面卷
💻 HTM
📖 第 1 页 / 共 3 页
字号:
              JLabel view1 = new JLabel(<br>              new ImageIcon(&quot;gjMedium.gif&quot;));<br>              JLabel view2 = new JLabel(<br>              new ImageIcon(&quot;anjinAndMariko.gif&quot;));</p>            <p> JScrollPane sp1 = new JScrollPane(view1);<br>              JScrollPane sp2 = new JScrollPane(view2);</p>            <p> setContentPane(contentPane);<br>              sp1.setPreferredSize(new Dimension(250,250));<br>              sp2.setPreferredSize(new Dimension(250,250));</p>            <p> contentPane.add(sp1);<br>              contentPane.add(sp2);<br>              }<br>              }<br>              class CustomContentPane extends JPanel { <br>              private ImageIcon rain = new ImageIcon(&quot;rain.gif&quot;);</p>            <p> public CustomContentPane() {<br>              setLayout(new FlowLayout());<br>              } <br>              public void paintComponent(Graphics g) {<br>              int rainw = rain.getIconWidth();<br>              int rainh = rain.getIconHeight();</p>            <p> Dimension size = getSize();</p>            <p> for(int row=0; row &lt; size.height; row += rainh)<br>              for(int col=0; col &lt; size.width; col += rainw)<br>              rain.paintIcon(this,g,col,row);<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 13.2.6 AWT兼容</p>            <p>&nbsp;</p>            <p> 13.3 Scrollable接口</p>            <p>&nbsp;</p>            <p align="center"><b>例13-10 跟踪视口宽度</b></p>            <hr noshade size="1">            import java.io.*;<br>            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;<br>            import javax.swing.text.*;            <p>public class Test extends JApplet {<br>              private JTextArea textArea = new JTextArea();</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> readFile();</p>            <p> contentPane.add(new ControlPanel(), BorderLayout.NORTH);<br>              contentPane.add(new JScrollPane(textArea), <br>              BorderLayout.CENTER);<br>              }<br>              private void readFile() {<br>              DefaultEditorKit kit = new DefaultEditorKit();</p>            <p> try {<br>              kit.read(new FileReader(&quot;Test.java&quot;),<br>              textArea.getDocument(), 0);<br>              }<br>              catch(Exception ex) { ex.printStackTrace(); }<br>              }<br>              class ControlPanel extends JPanel { <br>              public ControlPanel() {<br>              final JCheckBox cb = new JCheckBox(&quot;wrap&quot;);</p>            <p> add(cb);</p>            <p> cb.addItemListener(new ItemListener() {<br>              public void itemStateChanged(ItemEvent e) {<br>              if(cb.isSelected())<br>              textArea.setLineWrap(true);<br>              else<br>              textArea.setLineWrap(false);<br>              }<br>              });<br>              }<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 13.4 JScrollBar</p>            <p>&nbsp;</p>            <p>&nbsp;</p>            <p> 13.4.1 使用Swing的JScrollBar类进行手动滚动</p>            <p>&nbsp;</p>            <p> 13.4.2 块增量和单元增量</p>            <p>&nbsp;</p>            <p> 13.4.3 JScrollBar属性</p>            <p>&nbsp;</p>            <p align="center"><b>例13-11 为JScrollBar的实例指定单增量和块增量</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 JScrollBar vsb = new JScrollBar(JScrollBar.VERTICAL);<br>              private SSPanel panel = new SSPanel();</p>            <p> public Test() {<br>              Container contentPane = getContentPane();</p>            <p> contentPane.add(panel, BorderLayout.CENTER);<br>              contentPane.add(vsb, BorderLayout.EAST);</p>            <p> vsb.addAdjustmentListener(new AdjustmentListener() {<br>              public void adjustmentValueChanged(<br>              AdjustmentEvent e) {<br>              JScrollBar sb = (JScrollBar)e.getSource();<br>              showScrollBarValues();<br>              panel.setTopIndexByPixelValue(e.getValue());<br>              panel.repaint();<br>              }<br>              });<br>              }<br>              public void paint(Graphics g) {<br>              Dimension pref = panel.getPreferredSize();<br>              Dimension size = panel.getSize();<br>              int extent = size.height, max = pref.height;<br>              int value = Math.max(0, <br>              Math.min(vsb.getValue(), max - extent));</p>            <p> vsb.setVisible(extent &lt; max);<br>              vsb.setUnitIncrement(panel.getUnitHeight());<br>              vsb.setBlockIncrement(extent - vsb.getUnitIncrement());<br>              vsb.setValues(value, extent, 0, max);</p>            <p> showScrollBarValues();<br>              super.paint(g);<br>              }<br>              private void showScrollBarValues() {<br>              showStatus(&quot;min: &quot; + vsb.getMinimum() +<br>              &quot;, max: &quot; + vsb.getMaximum() +<br>              &quot;, visible amount: &quot; + <br>              vsb.getVisibleAmount() +<br>              &quot;, value: &quot; + vsb.getValue());<br>              }<br>              }<br>              class SSPanel extends JPanel { <br>              private int topIndex = 0;<br>              private int fh;</p>            <p> private String[] data = {<br>              &quot;Brown, Ted: 000-00-0001&quot;, &quot;Brown, Ted: 000-00-0002&quot;,<br>              &quot;Brown, Ted: 000-00-0003&quot;, &quot;Brown, Ted: 000-00-0004&quot;,<br>              &quot;Brown, Ted: 000-00-0005&quot;, &quot;Brown, Ted: 000-00-0006&quot;,<br>              &quot;Brown, Ted: 000-00-0007&quot;, &quot;Brown, Ted: 000-00-0008&quot;,<br>              &quot;Brown, Ted: 000-00-0009&quot;, &quot;Brown, Ted: 000-00-00010&quot;,<br>              &quot;Brown, Ted: 000-00-00011&quot;, &quot;Brown, Ted: 000-00-00012&quot;,<br>              &quot;Brown, Ted: 000-00-00013&quot;, &quot;Brown, Ted: 000-00-00014&quot;,<br>              &quot;Brown, Ted: 000-00-00015&quot;, &quot;Brown, Ted: 000-00-00016&quot;,<br>              &quot;Brown, Ted: 000-00-00017&quot;, &quot;Brown, Ted: 000-00-00018&quot;,<br>              &quot;Brown, Ted: 000-00-00019&quot;, &quot;Brown, Ted: 000-00-00020&quot;,<br>              &quot;Brown, Ted: 000-00-00021&quot;, &quot;Brown, Ted: 000-00-00022&quot;,<br>              &quot;Brown, Ted: 000-00-00023&quot;, &quot;Brown, Ted: 000-00-00024&quot;,<br>              &quot;Brown, Ted: 000-00-00025&quot;, &quot;Brown, Ted: 000-00-00026&quot;,<br>              &quot;Brown, Ted: 000-00-00027&quot;, &quot;Brown, Ted: 000-00-00028&quot;,<br>              &quot;Brown, Ted: 000-00-00029&quot;, &quot;Brown, Ted: 000-00-00030&quot;,<br>              };<br>              public void paintComponent(Graphics g) {<br>              Color color = g.getColor();<br>              super.paintComponent(g);<br>              g.setColor(color);</p>            <p> Dimension size = getSize();<br>              Insets insets = getInsets();<br>              int y = insets.top;</p>            <p> for(int i = topIndex; i &lt; data.length; ++i, y += fh) {<br>              g.drawString(data[i], 0, y);</p>            <p> if(y + fh &gt; size.height - insets.bottom)<br>              break;<br>              }<br>              }<br>              public void setTopIndexByPixelValue(int pixelValue) {<br>              topIndex = pixelValue / fh;<br>              }<br>              public int getUnitHeight() {<br>              return fh;<br>              }<br>              public Dimension getPreferredSize() {<br>              Dimension dim = new Dimension();<br>              Graphics g = getGraphics();</p>            <p> try {<br>              FontMetrics fm = g.getFontMetrics();<br>              fh = fm.getHeight();</p>            <p> dim.width = fm.stringWidth(data[data.length-1]);<br>              dim.height = fm.getHeight() * (data.length + 1);<br>              }<br>              finally {<br>              g.dispose();<br>              }<br>              return dim;<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 13.4.4 JScrollBar事件</p>            <p>&nbsp;</p>            <p align="center"><b>例13-12 使用JScrollBar的valueIsAdjusting属性</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>              JScrollBar sb = new JScrollBar();</p>            <p> contentPane.add(sb, BorderLayout.EAST);</p>            <p> sb.addAdjustmentListener(new AdjustmentListener() {<br>              public void adjustmentValueChanged(<br>              AdjustmentEvent e) {<br>              JScrollBar jsb = (JScrollBar)e.getAdjustable();</p>            <p> if(jsb.getValueIsAdjusting())<br>              showStatus(&quot;adjusting ...&quot;);<br>              else<br>              showStatus(Integer.toString(e.getValue()));<br>              }<br>              });<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 13.4.5 JScrollBar类总结</p>            <p>&nbsp;</p>            <p> 13.4.6 AWT兼容</p>            <p>&nbsp;</p>            <p> 13.5 本章回顾</p>            <p>&nbsp;</p>            <p>[<a href="index.html" target="_self">目录</a>][<a href="s12.htm">上一页</a>][<a href="s14.htm">下一页</a>](飒龙收藏/2002.5.18)             </p>            </td>          </tr>        </tbody>      </table>    </td>  </tr></tbody></table><script language="javascript">bottomprint()</script></body></html>

⌨️ 快捷键说明

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