Class FlatPopupFactory.NonFlashingPopup

  • Direct Known Subclasses:
    FlatPopupFactory.DropShadowPopup
    Enclosing class:
    FlatPopupFactory

    private class FlatPopupFactory.NonFlashingPopup
    extends javax.swing.Popup
    Fixes popup background flashing effect when using dark theme on light platform theme, where the light popup background is shown for a fraction of a second before the dark popup content is shown. This is fixed by setting popup background to content background.

    Defers hiding of heavy weight popup window for an event cycle, which allows reusing popup window to avoid flicker when "moving" popup.

    • Field Detail

      • delegate

        private javax.swing.Popup delegate
      • owner

        java.awt.Component owner
      • contents

        private java.awt.Component contents
      • popupWindow

        java.awt.Window popupWindow
      • oldPopupWindowBackground

        private java.awt.Color oldPopupWindowBackground
      • disposed

        private boolean disposed
    • Constructor Detail

      • NonFlashingPopup

        NonFlashingPopup​(javax.swing.Popup delegate,
                         java.awt.Component owner,
                         java.awt.Component contents)
    • Method Detail

      • show

        public final void show()
        Overrides:
        show in class javax.swing.Popup
      • showImpl

        void showImpl()
      • hide

        public final void hide()
        Overrides:
        hide in class javax.swing.Popup
      • hideImpl

        void hideImpl()
      • reset

        void reset​(java.awt.Component contents,
                   int ownerX,
                   int ownerY)