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 / CheckboxPanel.java < prev    next >
Encoding:
Java Source  |  1998-12-01  |  7.5 KB  |  237 lines

  1. /*
  2.  * @(#)CheckboxPanel.java    1.8 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.  * Checkboxes!
  26.  *
  27.  * @version 1.8 08/26/98
  28.  * @author Jeff Dinkins
  29.  */
  30. public class CheckboxPanel extends JPanel 
  31. {
  32.     // The Frame
  33.     SwingSet swing;
  34.  
  35.     ImageIcon bulb1 = SwingSet.sharedInstance().loadImageIcon("images/WebSpice/bulb1.gif","dim light bulb");
  36.     ImageIcon bulb2 = SwingSet.sharedInstance().loadImageIcon("images/WebSpice/bulb2.gif","lit light bulb");
  37.     ImageIcon bulb3 = SwingSet.sharedInstance().loadImageIcon("images/WebSpice/bulb3.gif","greyed out light bulb");
  38.  
  39.     public CheckboxPanel(SwingSet swing) {
  40.     this.swing = swing;
  41.  
  42.     setBorder(swing.emptyBorder5);
  43.     setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  44.  
  45.     // *************** Checkboxes ****************
  46.     // text buttons
  47.     JPanel textButtons = SwingSet.createHorizontalPanel(false);
  48.     textButtons.setAlignmentX(LEFT_ALIGNMENT);
  49.     Border buttonBorder = new TitledBorder(null, "Text Checkboxes", 
  50.                            TitledBorder.LEFT, TitledBorder.TOP,
  51.                            swing.boldFont);
  52.  
  53.     Border emptyBorder = new EmptyBorder(5,5,5,5);
  54.     Border compoundBorder = new CompoundBorder( buttonBorder, emptyBorder);
  55.     textButtons.setBorder(compoundBorder);
  56.  
  57.     JCheckBox button;
  58.     button = new JCheckBox("One", true);
  59.     button.setToolTipText("This is a Checkbox with Text");
  60.         button.setMnemonic('o');
  61.     swing.checkboxes.addElement(button);
  62.     textButtons.add(button);
  63.     textButtons.add(Box.createRigidArea(swing.hpad10));
  64.     
  65.     button = new JCheckBox("Two");
  66.     button.setToolTipText("This is a Checkbox with Text");
  67.         button.setMnemonic('t');
  68.     swing.checkboxes.addElement(button);
  69.     textButtons.add(button);
  70.     textButtons.add(Box.createRigidArea(swing.hpad10));
  71.  
  72.     button = new JCheckBox("Three");
  73.     button.setToolTipText("This is a Checkbox with Text");
  74.         button.setMnemonic('h');
  75.     swing.checkboxes.addElement(button);
  76.     textButtons.add(button);
  77.  
  78.     
  79.     // image buttons
  80.     JPanel imageButtons = SwingSet.createHorizontalPanel(false);
  81.     imageButtons.setAlignmentX(LEFT_ALIGNMENT);
  82.     buttonBorder = new TitledBorder(null, "Image Checkbox", 
  83.                            TitledBorder.LEFT, TitledBorder.TOP,
  84.                            swing.boldFont);
  85.     compoundBorder = new CompoundBorder(buttonBorder, emptyBorder);
  86.     imageButtons.setBorder(compoundBorder);
  87.  
  88.     button = new JCheckBox("One", bulb1);
  89.     button.setSelectedIcon(bulb2);
  90.     button.setDisabledIcon(bulb3);
  91.     button.getAccessibleContext().setAccessibleDescription("Image of a lightbulb");
  92.     swing.checkboxes.addElement(button);
  93.     imageButtons.add(button);
  94.     imageButtons.add(Box.createRigidArea(swing.hpad10));
  95.  
  96.     button = new JCheckBox("Two", bulb1);
  97.     button.setSelectedIcon(bulb2);
  98.     button.setDisabledIcon(bulb3);
  99.     button.getAccessibleContext().setAccessibleDescription("Image of a lightbulb");
  100.     swing.checkboxes.addElement(button);
  101.     imageButtons.add(button);
  102.     imageButtons.add(Box.createRigidArea(swing.hpad10));
  103.  
  104.     button = new JCheckBox("Three", bulb1);
  105.     button.setSelectedIcon(bulb2);
  106.     button.setDisabledIcon(bulb3);
  107.     button.getAccessibleContext().setAccessibleDescription("Image of a lightbulb");
  108.     swing.checkboxes.addElement(button);
  109.     imageButtons.add(button);
  110.  
  111.     // Add button panels to buttonPanel
  112.     JPanel buttonPanel = swing.createVerticalPanel(true);
  113.     buttonPanel.setAlignmentX(LEFT_ALIGNMENT);
  114.     buttonPanel.setAlignmentY(TOP_ALIGNMENT);
  115.  
  116.  
  117.     buttonPanel.add(textButtons);
  118.     buttonPanel.add(Box.createRigidArea(swing.vpad20));
  119.     buttonPanel.add(imageButtons);
  120.  
  121.     buttonPanel.add(Box.createGlue());
  122.  
  123.  
  124.     // *************** Create the button controls ****************
  125.     JPanel controls = new JPanel() {
  126.         public Dimension getMaximumSize() {
  127.         return new Dimension(300, super.getMaximumSize().height);
  128.         }
  129.     };
  130.     controls.setLayout(new BoxLayout(controls, BoxLayout.Y_AXIS));
  131.     controls.setAlignmentY(TOP_ALIGNMENT);
  132.     controls.setAlignmentX(LEFT_ALIGNMENT);
  133.  
  134.     JPanel buttonControls = swing.createHorizontalPanel(true);
  135.     buttonControls.setAlignmentY(TOP_ALIGNMENT);
  136.     buttonControls.setAlignmentX(LEFT_ALIGNMENT);
  137.  
  138.     JPanel leftColumn = swing.createVerticalPanel(false);
  139.     leftColumn.setAlignmentX(LEFT_ALIGNMENT);
  140.     leftColumn.setAlignmentY(TOP_ALIGNMENT);
  141.  
  142.     JPanel rightColumn = swing.createVerticalPanel(false);
  143.     rightColumn.setAlignmentX(LEFT_ALIGNMENT);
  144.     rightColumn.setAlignmentY(TOP_ALIGNMENT);
  145.  
  146.     buttonControls.add(leftColumn);
  147.     buttonControls.add(Box.createRigidArea(swing.hpad20));
  148.     buttonControls.add(rightColumn);
  149.     buttonControls.add(Box.createRigidArea(swing.hpad20));
  150.  
  151.     controls.add(buttonControls);
  152.  
  153.     // Display Options
  154.     JLabel l = new JLabel("Display Options:");
  155.     leftColumn.add(l);
  156.     l.setFont(swing.boldFont);
  157.  
  158.      JCheckBox bordered = new JCheckBox("Paint Border");
  159.     bordered.setToolTipText("Click here to turn border painting on or off.");
  160.         bordered.setMnemonic('b');
  161.      bordered.addItemListener(swing.buttonDisplayListener);
  162.      leftColumn.add(bordered);
  163.  
  164.      JCheckBox focused = new JCheckBox("Paint Focus");
  165.     focused.setToolTipText("Click here to turn focus painting on or off.");
  166.         focused.setMnemonic('f');
  167.      focused.setSelected(true);
  168.      focused.addItemListener(swing.buttonDisplayListener);
  169.      leftColumn.add(focused);
  170.  
  171.     JCheckBox enabled = new JCheckBox("Enabled");
  172.     enabled.setToolTipText("Click here to enable or disable the checkboxes.");
  173.     enabled.setSelected(true);
  174.         enabled.setMnemonic('e');
  175.     enabled.addItemListener(swing.buttonDisplayListener);
  176.     leftColumn.add(enabled);
  177.  
  178.     leftColumn.add(Box.createRigidArea(swing.vpad20));
  179.  
  180.     
  181.     l = new JLabel("Pad Amount:");
  182.     leftColumn.add(l);
  183.     l.setFont(swing.boldFont);
  184.     
  185.     ButtonGroup group = new ButtonGroup();
  186.     JRadioButton defaultPad = new JRadioButton("Default");
  187.         defaultPad.setMnemonic('d');
  188.     defaultPad.setToolTipText("Uses the default padding between the border and label.");
  189.     group.add(defaultPad);
  190.     defaultPad.setSelected(true);
  191.      defaultPad.addItemListener(swing.buttonPadListener);
  192.     leftColumn.add(defaultPad);
  193.  
  194.     JRadioButton zeroPad = new JRadioButton("0");
  195.     zeroPad.setToolTipText("Uses no padding between the border and label.");
  196.         zeroPad.setMnemonic('0');
  197.     group.add(zeroPad);
  198.      zeroPad.addItemListener(swing.buttonPadListener);
  199.     leftColumn.add(zeroPad);
  200.  
  201.     JRadioButton tenPad = new JRadioButton("10");
  202.     tenPad.setToolTipText("Uses a 10 pixel pad between the border and label.");
  203.         tenPad.setMnemonic('1');
  204.     group.add(tenPad);
  205.      tenPad.addItemListener(swing.buttonPadListener);
  206.     leftColumn.add(tenPad);
  207.  
  208.     leftColumn.add(Box.createRigidArea(swing.vpad20));
  209.  
  210.     
  211.     // *************** Create the layout controls ****************
  212.     // Create Text Position Layout control
  213.     JPanel textPosition = DirectionButton.createDirectionPanel(true, "E", swing.textPositionListener);
  214.     JPanel labelAlignment = DirectionButton.createDirectionPanel(true, "C", swing.labelAlignmentListener);
  215.  
  216.     l = new JLabel("Text Position:");
  217.     rightColumn.add(l);
  218.     l.setFont(swing.boldFont);
  219.      rightColumn.add(textPosition);
  220.  
  221.      rightColumn.add(Box.createRigidArea(swing.vpad20));
  222.  
  223.     l = new JLabel("Content Alignment:");
  224.     rightColumn.add(l);
  225.     l.setFont(swing.boldFont);
  226.      rightColumn.add(labelAlignment);
  227.  
  228.      rightColumn.add(Box.createGlue());
  229.  
  230.     add(buttonPanel);
  231.     add(Box.createRigidArea(swing.hpad10));
  232.      add(controls);
  233.     }
  234.  
  235.     
  236. }
  237.