Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: jplot/SmallToggleButton.java


1   /*
2    * Class defining a small toggle button
3    * 
4    * Copyright stuff goes here.
5    */
6   
7   package jplot;
8   
9   import javax.swing.*;
10  import javax.swing.event.*;
11  import javax.swing.border.*;
12  import java.io.*;
13  
14  import java.awt.event.*;
15  import java.awt.*;
16  
17  /**
18   * Class small button displays a toggle button in the new 'window' style,
19   * i.e., pressed lesses the button in a 'lowered' state, else it
20   * remains raised.
21   */
22  public class SmallToggleButton extends JToggleButton implements ItemListener {
23  
24    protected Border raised;
25    protected Border lowered;
26  
27    /**
28     * Principal constructor, builds the button with a specific
29     * action and a tool tip.
30     * @param action action performed when pressing
31     * @param tip tool tip
32     */
33    public SmallToggleButton(boolean selected, ImageIcon imgUnselected,
34           ImageIcon imgSelected, String tip) {
35      super(imgUnselected,selected);
36      setHorizontalAlignment(CENTER);
37      setBorderPainted(true);
38      raised = new BevelBorder(BevelBorder.RAISED);
39      lowered = new BevelBorder(BevelBorder.LOWERED);
40      setBorder(selected? lowered : raised);
41      setMargin(new Insets(1,1,1,1));
42      setToolTipText(tip);
43      addItemListener(this);
44      setSelectedIcon(imgSelected);
45      setRequestFocusEnabled(false);
46    }
47  
48    public void resetBorder() {
49      setBorder(isSelected()? lowered : raised);
50    }
51  
52    public float getAlignmentY() {
53      return 0.5f;
54    }
55  
56    public void itemStateChanged(ItemEvent e) {
57      setBorder(isSelected()? lowered : raised);
58    }
59  }