FileDocCategorySizeDatePackage
PlainBorders.javaAPI DocExample1177Mon Nov 09 12:45:52 GMT 1998plain

PlainBorders.java

// PlainBorders.java
//
package plain;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.plaf.*;

public class PlainBorders {
  // An inner class for JButton borders.
  public static class ButtonBorder extends AbstractBorder implements UIResource
  {
    private Border raised;  // use this one by default
    private Border lowered; // use this one when pressed

    // Create the border.
    public ButtonBorder() {
      raised = BorderFactory.createRaisedBevelBorder();
      lowered = BorderFactory.createLoweredBevelBorder();
    }

    // Define the insets (in terms of one of the others).
    public Insets getBorderInsets(Component c) {
      return raised.getBorderInsets(c);
    }

    // Paint the border according to the current state.
    public void paintBorder(Component c, Graphics g, int x, int y,
        int width, int height) {

      AbstractButton b = (AbstractButton)c;
      ButtonModel model = b.getModel();

      if (model.isPressed() && model.isArmed()) {
        lowered.paintBorder(c, g, x, y, width, height);
      }
      else {
        raised.paintBorder(c, g, x, y, width, height);
      }
    }
  }
}