646 * <pre>
647 * root.setGlassPane(newGlassPane);
648 * newGlassPane.setVisible(true);
649 * </pre>
650 * or:
651 * <pre>
652 * root.getGlassPane().setVisible(true);
653 * root.setGlassPane(newGlassPane);
654 * </pre>
655 *
656 * @param glass the <code>Component</code> to use as the glass pane
657 * for this <code>JRootPane</code>
658 * @exception NullPointerException if the <code>glass</code> parameter is
659 * <code>null</code>
660 */
661 public void setGlassPane(Component glass) {
662 if (glass == null) {
663 throw new NullPointerException("glassPane cannot be set to null.");
664 }
665
666 AWTAccessor.getComponentAccessor().setMixingCutoutShape(glass,
667 new Rectangle());
668
669 boolean visible = false;
670 if (glassPane != null && glassPane.getParent() == this) {
671 this.remove(glassPane);
672 visible = glassPane.isVisible();
673 }
674
675 glass.setVisible(visible);
676 glassPane = glass;
677 this.add(glassPane, 0);
678 if (visible) {
679 repaint();
680 }
681 }
682
683 /**
684 * Returns the current glass pane for this <code>JRootPane</code>.
685 * @return the current glass pane
686 * @see #setGlassPane
687 */
|
646 * <pre>
647 * root.setGlassPane(newGlassPane);
648 * newGlassPane.setVisible(true);
649 * </pre>
650 * or:
651 * <pre>
652 * root.getGlassPane().setVisible(true);
653 * root.setGlassPane(newGlassPane);
654 * </pre>
655 *
656 * @param glass the <code>Component</code> to use as the glass pane
657 * for this <code>JRootPane</code>
658 * @exception NullPointerException if the <code>glass</code> parameter is
659 * <code>null</code>
660 */
661 public void setGlassPane(Component glass) {
662 if (glass == null) {
663 throw new NullPointerException("glassPane cannot be set to null.");
664 }
665
666 glass.setMixingCutoutShape(new Rectangle());
667
668 boolean visible = false;
669 if (glassPane != null && glassPane.getParent() == this) {
670 this.remove(glassPane);
671 visible = glassPane.isVisible();
672 }
673
674 glass.setVisible(visible);
675 glassPane = glass;
676 this.add(glassPane, 0);
677 if (visible) {
678 repaint();
679 }
680 }
681
682 /**
683 * Returns the current glass pane for this <code>JRootPane</code>.
684 * @return the current glass pane
685 * @see #setGlassPane
686 */
|