home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / J A V A / Java Development Kit V1.2 / jdk12-win32(1).exe / data1.cab / demos / demo / jfc / SwingSet / ToggleButtonPanel.java < prev    next >
Encoding:
Java Source  |  1998-12-01  |  8.5 KB  |  265 lines

  1. /*
  2.  * @(#)ToggleButtonPanel.java    1.9 98/08/26
  3.  *
  4.  * Copyright 1997, 1998 by Sun Microsystems, Inc.,
  5.  * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
  6.  * All rights reserved.
  7.  *
  8.  * This software is the confidential and proprietary information
  9.  * of Sun Microsystems, Inc. ("Confidential Information").  You
  10.  * shall not disclose such Confidential Information and shall use
  11.  * it only in accordance with the terms of the license agreement
  12.  * you entered into with Sun.
  13.  */
  14.  
  15. import javax.swing.*;
  16. import javax.swing.text.*;
  17. import javax.swing.border.*;
  18.  
  19. import java.awt.*;
  20. import java.awt.event.*;
  21. import java.util.*;
  22.  
  23.  
  24. /**
  25.  * ToggleButtons!
  26.  *
  27.  * @version 1.9 08/26/98
  28.  * @author Jeff Dinkins
  29.  */
  30. public class ToggleButtonPanel extends JPanel 
  31. {
  32.     // The Frame
  33.     SwingSet swing;
  34.  
  35.  
  36.     public ToggleButtonPanel(SwingSet swing) {
  37.     this.swing = swing;
  38.     ButtonGroup group;
  39.  
  40.     setBorder(swing.emptyBorder5);
  41.     setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  42.  
  43.     // *************** duke ****************
  44.         ImageIcon dukeAnim;
  45.         ImageIcon duke = SwingSet.sharedInstance().loadImageIcon("images/swing.small.gif","Duke waving from a swing");
  46.         ImageIcon dukeWave = SwingSet.sharedInstance().loadImageIcon("images/dukeWave.gif","Duke waving");
  47.  
  48.     // *************** toggle buttons ****************
  49.     // text buttons
  50.     JPanel textButtons = SwingSet.createHorizontalPanel(false);
  51.     textButtons.setAlignmentX(LEFT_ALIGNMENT);
  52.     Border buttonBorder = new TitledBorder(null, "Text ToggleButton", 
  53.                            TitledBorder.LEFT, TitledBorder.TOP,
  54.                            swing.boldFont);
  55.  
  56.     Border emptyBorder = new EmptyBorder(5,5,5,5);
  57.     Border compoundBorder = new CompoundBorder( buttonBorder, emptyBorder);
  58.  
  59.     textButtons.setBorder(compoundBorder);
  60.  
  61.     group = new ButtonGroup();
  62.     JToggleButton button;
  63.     button = new JToggleButton("One", true);
  64.     button.setToolTipText("This is a ToggleButton with Text");
  65.     group.add(button);
  66.         button.setMnemonic('o');
  67.     swing.toggleButtons.addElement(button);
  68.     textButtons.add(button);
  69.     textButtons.add(Box.createRigidArea(swing.hpad10));
  70.     
  71.     button = new JToggleButton("Two");
  72.     group.add(button);
  73.         button.setMnemonic('t');
  74.     button.setToolTipText("This is a ToggleButton with Text");
  75.     swing.toggleButtons.addElement(button);
  76.     textButtons.add(button);
  77.     textButtons.add(Box.createRigidArea(swing.hpad10));
  78.  
  79.     button = new JToggleButton("Three");
  80.     group.add(button);
  81.         button.setMnemonic('h');
  82.     button.setToolTipText("This is a ToggleButton with Text");
  83.     swing.toggleButtons.addElement(button);
  84.     textButtons.add(button);
  85.  
  86.  
  87.     // image buttons
  88.     group = new ButtonGroup();
  89.  
  90.     JPanel imageButtons = SwingSet.createHorizontalPanel(false);
  91.     imageButtons.setAlignmentX(LEFT_ALIGNMENT);
  92.     buttonBorder = new TitledBorder(null, "Image ToggleButtons", 
  93.                            TitledBorder.LEFT, TitledBorder.TOP,
  94.                            swing.boldFont);
  95.     compoundBorder = new CompoundBorder(buttonBorder, emptyBorder);
  96.     imageButtons.setBorder(compoundBorder);
  97.  
  98.     // 1 image
  99.         dukeAnim = SwingSet.sharedInstance().loadImageIcon("images/swing-64.gif","Animated image of Duke swinging on a swing");
  100.     button = new JToggleButton(duke);
  101.         dukeAnim.setImageObserver(button);
  102.     group.add(button);
  103.     button.setRolloverIcon(dukeWave);
  104.     button.setSelectedIcon(dukeAnim);
  105.     button.setSelected(true);
  106.     button.setToolTipText("This is a ToggleButton with a Icon");
  107.     button.getAccessibleContext().setAccessibleName("Swinging Duke toggle button");
  108.     swing.toggleButtons.addElement(button);
  109.     imageButtons.add(button);
  110.     imageButtons.add(Box.createRigidArea(swing.hpad10));
  111.     
  112.     // 2 images
  113.         dukeAnim = SwingSet.sharedInstance().loadImageIcon("images/swing-64.gif","Animated image of Duke swinging on a swing");
  114.     button = new JToggleButton(duke);
  115.     button.setRolloverIcon(dukeWave);
  116.         dukeAnim.setImageObserver(button);
  117.     group.add(button);
  118.     swing.toggleButtons.addElement(button);
  119.     button.setSelectedIcon(dukeAnim);
  120.     button.setToolTipText("This is a ToggleButton with a Icon");
  121.     button.getAccessibleContext().setAccessibleName("Swinging Duke toggle button");
  122.     imageButtons.add(button);
  123.     imageButtons.add(Box.createRigidArea(swing.hpad10));
  124.  
  125.     // 3 images
  126.         dukeAnim = SwingSet.sharedInstance().loadImageIcon("images/swing-64.gif","Animated image of Duke swinging on a swing");
  127.     button = new JToggleButton(duke);
  128.     button.setRolloverIcon(dukeWave);
  129.         dukeAnim.setImageObserver(button);
  130.     group.add(button);
  131.     button.setSelectedIcon(dukeAnim);
  132.     button.setToolTipText("This is a ToggleButton with a Icon");
  133.     button.getAccessibleContext().setAccessibleName("Swinging Duke toggle button");
  134.     swing.toggleButtons.addElement(button);
  135.     imageButtons.add(button);
  136.  
  137.     // Add button panels to buttonPanel
  138.     JPanel buttonPanel = SwingSet.createVerticalPanel(true);
  139.     buttonPanel.setAlignmentX(LEFT_ALIGNMENT);
  140.     buttonPanel.setAlignmentY(TOP_ALIGNMENT);
  141.  
  142.     buttonPanel.add(textButtons);
  143.  
  144.     buttonPanel.add(Box.createVerticalStrut(10));
  145.  
  146.     buttonPanel.add(imageButtons);
  147.     buttonPanel.add(Box.createGlue());
  148.  
  149.  
  150.     // *************** Create the button controls ****************
  151.     JPanel controls = new JPanel() {
  152.         public Dimension getMaximumSize() {
  153.         return new Dimension(300, super.getMaximumSize().height);
  154.         }
  155.     };
  156.     controls.setLayout(new BoxLayout(controls, BoxLayout.Y_AXIS));
  157.     controls.setAlignmentY(TOP_ALIGNMENT);
  158.     controls.setAlignmentX(LEFT_ALIGNMENT);
  159.  
  160.     JPanel buttonControls = SwingSet.createHorizontalPanel(true);
  161.     buttonControls.setAlignmentY(TOP_ALIGNMENT);
  162.     buttonControls.setAlignmentX(LEFT_ALIGNMENT);
  163.  
  164.     JPanel leftColumn = SwingSet.createVerticalPanel(false);
  165.     leftColumn.setAlignmentX(LEFT_ALIGNMENT);
  166.     leftColumn.setAlignmentY(TOP_ALIGNMENT);
  167.  
  168.     JPanel rightColumn = SwingSet.createVerticalPanel(false);
  169.     rightColumn.setAlignmentX(LEFT_ALIGNMENT);
  170.     rightColumn.setAlignmentY(TOP_ALIGNMENT);
  171.  
  172.     buttonControls.add(leftColumn);
  173.     buttonControls.add(Box.createRigidArea(swing.hpad20));
  174.     buttonControls.add(rightColumn);
  175.     buttonControls.add(Box.createRigidArea(swing.hpad20));
  176.  
  177.     controls.add(buttonControls);
  178.  
  179.     // Display Options
  180.     JLabel l = new JLabel("Display Options:");
  181.     leftColumn.add(l);
  182.     l.setFont(swing.boldFont);
  183.  
  184.      JCheckBox bordered = new JCheckBox("Paint Border");
  185.     bordered.setToolTipText("Click here to turn border painting on or off.");
  186.         bordered.setMnemonic('b');
  187.     bordered.setSelected(true);
  188.      bordered.addItemListener(swing.buttonDisplayListener);
  189.      leftColumn.add(bordered);
  190.  
  191.      JCheckBox focused = new JCheckBox("Paint Focus");
  192.     focused.setToolTipText("Click here to turn focus painting on or off.");
  193.         focused.setMnemonic('f');
  194.      focused.setSelected(true);
  195.      focused.addItemListener(swing.buttonDisplayListener);
  196.      leftColumn.add(focused);
  197.  
  198.     JCheckBox enabled = new JCheckBox("Enabled");
  199.     enabled.setSelected(true);
  200.     enabled.setToolTipText("Click here to enable or disable the toggle buttons.");
  201.         enabled.setMnemonic('e');
  202.     enabled.addItemListener(swing.buttonDisplayListener);
  203.     leftColumn.add(enabled);
  204.  
  205.  
  206.     leftColumn.add(Box.createRigidArea(swing.vpad20));
  207.  
  208.     
  209.     l = new JLabel("Pad Amount:");
  210.     leftColumn.add(l);
  211.     l.setFont(swing.boldFont);
  212.     
  213.     group = new ButtonGroup();
  214.     JRadioButton defaultPad = new JRadioButton("Default");
  215.         defaultPad.setMnemonic('d');
  216.     defaultPad.setToolTipText("Uses the default padding between the border and label.");
  217.     group.add(defaultPad);
  218.     defaultPad.setSelected(true);
  219.      defaultPad.addItemListener(swing.buttonPadListener);
  220.     leftColumn.add(defaultPad);
  221.  
  222.     JRadioButton zeroPad = new JRadioButton("0");
  223.         zeroPad.setMnemonic('0');
  224.     group.add(zeroPad);
  225.     zeroPad.setToolTipText("Uses no padding between the border and label.");
  226.      zeroPad.addItemListener(swing.buttonPadListener);
  227.     leftColumn.add(zeroPad);
  228.  
  229.     JRadioButton tenPad = new JRadioButton("10");
  230.         tenPad.setMnemonic('1');
  231.     tenPad.setToolTipText("Uses a 10 pixel pad between the border and label.");
  232.     group.add(tenPad);
  233.      tenPad.addItemListener(swing.buttonPadListener);
  234.     leftColumn.add(tenPad);
  235.     
  236.     leftColumn.add(Box.createRigidArea(swing.vpad20));
  237.  
  238.  
  239.     // *************** Create the layout controls ****************
  240.     // Create Text Position Layout control
  241.     JPanel textPosition = DirectionButton.createDirectionPanel(true, "E", swing.textPositionListener);
  242.     JPanel labelAlignment = DirectionButton.createDirectionPanel(true, "C", swing.labelAlignmentListener);
  243.  
  244.     l = new JLabel("Text Position:");
  245.     rightColumn.add(l);
  246.     l.setFont(swing.boldFont);
  247.      rightColumn.add(textPosition);
  248.  
  249.      rightColumn.add(Box.createRigidArea(swing.vpad20));
  250.  
  251.     l = new JLabel("Content Alignment:");
  252.     rightColumn.add(l);
  253.     l.setFont(swing.boldFont);
  254.      rightColumn.add(labelAlignment);
  255.  
  256.      rightColumn.add(Box.createGlue());
  257.  
  258.     add(buttonPanel);
  259.     add(Box.createRigidArea(swing.hpad10));
  260.      add(controls);
  261.     }
  262.  
  263.     
  264. }
  265.