ScrollPaneDemo.java |
1 /* 2 * @(#)ScrollPaneDemo.java 1.8 04/07/26 3 * 4 * Copyright (c) 2004 Sun Microsystems, Inc. All Rights Reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are met: 8 * 9 * -Redistribution of source code must retain the above copyright notice, this 10 * list of conditions and the following disclaimer. 11 * 12 * -Redistribution in binary form must reproduce the above copyright notice, 13 * this list of conditions and the following disclaimer in the documentation 14 * and/or other materials provided with the distribution. 15 * 16 * Neither the name of Sun Microsystems, Inc. or the names of contributors may 17 * be used to endorse or promote products derived from this software without 18 * specific prior written permission. 19 * 20 * This software is provided "AS IS," without a warranty of any kind. ALL 21 * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING 22 * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE 23 * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") 24 * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE 25 * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS 26 * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST 27 * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, 28 * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY 29 * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, 30 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 31 * 32 * You acknowledge that this software is not designed, licensed or intended 33 * for use in the design, construction, operation or maintenance of any 34 * nuclear facility. 35 */ 36 37 /* 38 * @(#)ScrollPaneDemo.java 1.8 04/07/26 39 */ 40 41 42 import javax.swing.*; 43 import javax.swing.event.*; 44 import javax.swing.text.*; 45 import javax.swing.border.*; 46 import javax.swing.colorchooser.*; 47 import javax.swing.filechooser.*; 48 import javax.accessibility.*; 49 50 import java.awt.*; 51 import java.awt.event.*; 52 import java.beans.*; 53 import java.util.*; 54 import java.io.*; 55 import java.applet.*; 56 import java.net.*; 57 58 /** 59 * Scroll Pane Demo 60 * 61 * @version 1.8 07/26/04 62 * @author Jeff Dinkins 63 */ 64 public class ScrollPaneDemo extends DemoModule { 65 66 /** 67 * main method allows us to run as a standalone demo. 68 */ 69 public static void main(String[] args) { 70 ScrollPaneDemo demo = new ScrollPaneDemo(null); 71 demo.mainImpl(); 72 } 73 74 /** 75 * ScrollPaneDemo Constructor 76 */ 77 public ScrollPaneDemo(SwingSet2 swingset) { 78 super(swingset, "ScrollPaneDemo", "toolbar/JScrollPane.gif"); 79 80 ImageIcon crayons = createImageIcon("scrollpane/crayons.jpg", getString("ScrollPaneDemo.crayons")); 81 getDemoPanel().add(new ImageScroller(this, crayons), BorderLayout.CENTER); 82 } 83 84 85 /** 86 * ScrollPane class that demonstrates how to set the various column and row headers 87 * and corners. 88 */ 89 class ImageScroller extends JScrollPane { 90 public ImageScroller(ScrollPaneDemo demo, Icon icon) { 91 super(); 92 93 // Panel to hold the icon image 94 JPanel p = new JPanel(new BorderLayout()); 95 p.add(new JLabel(icon), BorderLayout.CENTER); 96 getViewport().add(p); 97 98 // Create and add a column header to the scrollpane 99 JLabel colHeader = new JLabel( 100 demo.createImageIcon("scrollpane/colheader.jpg", getString("ScrollPaneDemo.colheader"))); 101 setColumnHeaderView(colHeader); 102 103 // Create and add a row header to the scrollpane 104 JLabel rowHeader = new JLabel( 105 demo.createImageIcon("scrollpane/rowheader.jpg", getString("ScrollPaneDemo.rowheader"))); 106 setRowHeaderView(rowHeader); 107 108 // Create and add the upper left corner 109 JLabel cornerUL = new JLabel( 110 demo.createImageIcon("scrollpane/upperleft.jpg", getString("ScrollPaneDemo.upperleft"))); 111 setCorner(UPPER_LEFT_CORNER, cornerUL); 112 113 // Create and add the upper right corner 114 JLabel cornerUR = new JLabel( 115 demo.createImageIcon("scrollpane/upperright.jpg", getString("ScrollPaneDemo.upperright"))); 116 setCorner(UPPER_RIGHT_CORNER, cornerUR); 117 118 // Create and add the lower left corner 119 JLabel cornerLL = new JLabel( 120 demo.createImageIcon("scrollpane/lowerleft.jpg", getString("ScrollPaneDemo.lowerleft"))); 121 setCorner(LOWER_LEFT_CORNER, cornerLL); 122 123 JScrollBar vsb = getVerticalScrollBar(); 124 JScrollBar hsb = getHorizontalScrollBar(); 125 126 vsb.setValue(icon.getIconHeight()); 127 hsb.setValue(icon.getIconWidth()/10); 128 } 129 } 130 131 } 132 133