下面列出了java.awt.event.HierarchyBoundsListener#java.awt.event.HierarchyEvent 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
DataViewComponent.MasterView getMasterView() {
initComponents();
setState(State.INACTIVE);
final HierarchyListener hl = new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (view.isShowing()) {
initializeCpuSampling();
initializeMemorySampling();
view.removeHierarchyListener(this);
}
}
}
};
view.addHierarchyListener(hl);
return new DataViewComponent.MasterView(NbBundle.getMessage(
SamplerImpl.class, "LBL_Sampler"), null, view); // NOI18N
}
@Override
protected void installListeners() {
if (WindowsLookAndFeel.isOnVista()) {
installWindowListener();
hierarchyListener =
new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags()
& HierarchyEvent.DISPLAYABILITY_CHANGED) != 0) {
if (menuBar.isDisplayable()) {
installWindowListener();
} else {
uninstallWindowListener();
}
}
}
};
menuBar.addHierarchyListener(hierarchyListener);
}
super.installListeners();
}
private void initialize() {
// We want to load our state after we have been associated with a DockingWindowManager.
// If the table is displayable, then we are are properly setup...
if (table.isDisplayable()) {
restoreState();
return;
}
// ...otherwise, we are using this listener to know when the table has been added to
// the component hierarchy, as it has been connected to a DockingWindowManager by then.
table.addHierarchyListener(new HierarchyListener() {
@Override
public void hierarchyChanged(HierarchyEvent e) {
long changeFlags = e.getChangeFlags();
if (HierarchyEvent.DISPLAYABILITY_CHANGED == (changeFlags &
HierarchyEvent.DISPLAYABILITY_CHANGED)) {
// check for the first time we are put together
if (table.isDisplayable()) {
restoreState();
table.removeHierarchyListener(this); // cleanup
}
}
}
});
}
@Override
protected void installListeners() {
if (WindowsLookAndFeel.isOnVista()) {
installWindowListener();
hierarchyListener =
new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags()
& HierarchyEvent.DISPLAYABILITY_CHANGED) != 0) {
if (menuBar.isDisplayable()) {
installWindowListener();
} else {
uninstallWindowListener();
}
}
}
};
menuBar.addHierarchyListener(hierarchyListener);
}
super.installListeners();
}
@Override
protected void installListeners() {
if (WindowsLookAndFeel.isOnVista()) {
installWindowListener();
hierarchyListener =
new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags()
& HierarchyEvent.DISPLAYABILITY_CHANGED) != 0) {
if (menuBar.isDisplayable()) {
installWindowListener();
} else {
uninstallWindowListener();
}
}
}
};
menuBar.addHierarchyListener(hierarchyListener);
}
super.installListeners();
}
/**
* Called when the component hierarchy for our text component changes.
* When the text component is added to a new {@link Window}, this method
* registers listeners on that <code>Window</code>.
*
* @param e The event.
*/
@Override
public void hierarchyChanged(HierarchyEvent e) {
// NOTE: e many be null as we call this method at other times.
// System.out.println("Hierarchy changed! " + e);
Window oldParentWindow = parentWindow;
parentWindow = SwingUtilities.getWindowAncestor(textComponent);
if (parentWindow != oldParentWindow) {
if (oldParentWindow != null) {
parentWindowListener.removeFrom(oldParentWindow);
}
if (parentWindow != null) {
parentWindowListener.addTo(parentWindow);
}
}
}
@Override
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getComponent() != txtComp)
|| ((e.getChangeFlags() & DISPLAYABILITY_CHANGED) == 0)
|| !txtComp.isDisplayable()) {
return;
}
watcherLogger.finer("componentShown()"); //NOI18N
if (foregroundColor == null) {
foregroundColor = txtComp.getForeground();
}
if ((doc.getLength() == 0) && !txtComp.isFocusOwner()) {
displayInfo();
}
}
protected MarqueePanel() {
super();
addHierarchyListener(e -> {
if ((e.getChangeFlags() & HierarchyEvent.DISPLAYABILITY_CHANGED) != 0 && !e.getComponent().isDisplayable()) {
animator.stop();
}
});
String text = "abcdefghijklmnopqrstuvwxyz";
Font font = new Font(Font.SERIF, Font.PLAIN, 100);
FontRenderContext frc = new FontRenderContext(null, true, true);
gv = font.createGlyphVector(frc, text);
lm = font.getLineMetrics(text, frc);
GlyphMetrics xgm = gv.getGlyphMetrics(23);
corpusSize = (float) xgm.getBounds2D().getHeight();
animator.start();
}
CPUView(AbstractSamplerSupport.Refresher refresher, CPUSamplerSupport.SnapshotDumper
snapshotDumper, CPUSamplerSupport.ThreadDumper threadDumper, Application application) {
this.refresher = refresher;
this.snapshotDumper = snapshotDumper;
this.threadDumper = threadDumper;
initComponents(application);
addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (isShowing()) CPUView.this.refresher.refresh();
}
}
});
}
MemoryView(Application application, AbstractSamplerSupport.Refresher refresher, int mode,
MemoryMXBean memoryBean, MemorySamplerSupport.SnapshotDumper snapshotDumper,
MemorySamplerSupport.HeapDumper heapDumper) {
this.refresher = refresher;
this.mode = mode;
this.memoryBean = memoryBean;
this.snapshotDumper = snapshotDumper;
this.heapDumper = heapDumper;
initComponents(application);
addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (isShowing()) MemoryView.this.refresher.refresh();
}
}
});
}
InstanceScrollPane(Heap heap) {
this.heap = heap;
setBorder(BorderFactory.createEmptyBorder());
setViewportBorder(BorderFactory.createLineBorder(
UIManager.getLookAndFeel().getID().equals("Metal") ? // NOI18N
UIManager.getColor("Button.darkShadow") : // NOI18N
UIManager.getColor("Button.shadow"))); // NOI18N
addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (instancePending && isShowing()) showInstanceImpl();
}
}
});
}
CPUView(AbstractSamplerSupport.Refresher refresher, CPUSamplerSupport.SnapshotDumper
snapshotDumper, CPUSamplerSupport.ThreadDumper threadDumper, Application application) {
this.refresher = refresher;
this.snapshotDumper = snapshotDumper;
this.threadDumper = threadDumper;
initComponents(application);
addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (isShowing()) CPUView.this.refresher.refresh();
}
}
});
}
@Override
protected void installListeners() {
if (WindowsLookAndFeel.isOnVista()) {
installWindowListener();
hierarchyListener =
new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags()
& HierarchyEvent.DISPLAYABILITY_CHANGED) != 0) {
if (menuBar.isDisplayable()) {
installWindowListener();
} else {
uninstallWindowListener();
}
}
}
};
menuBar.addHierarchyListener(hierarchyListener);
}
super.installListeners();
}
public void hierarchyChanged(HierarchyEvent event) {
if ((event.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) > 0) {
JComponent component = (JComponent)event.getComponent();
final Demo demo = (Demo)component.getClientProperty("swingset3.demo");
if (!component.isShowing()) {
demo.stop();
} else {
demoContainer.revalidate();
EventQueue.invokeLater(new Runnable() {
public void run() {
demo.start();
}
});
}
}
}
@Override
protected void installListeners() {
if (WindowsLookAndFeel.isOnVista()) {
installWindowListener();
hierarchyListener =
new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags()
& HierarchyEvent.DISPLAYABILITY_CHANGED) != 0) {
if (menuBar.isDisplayable()) {
installWindowListener();
} else {
uninstallWindowListener();
}
}
}
};
menuBar.addHierarchyListener(hierarchyListener);
}
super.installListeners();
}
/**
* Helper method for initializing multi line support.
*/
private void initLineWrapSupport() {
addPropertyChangeListener(new MultiLineSupport());
// FYI: no more listening for componentResized. Those events are delivered out
// of order and without old values are meaningless and forcing us to react when
// not necessary. Instead overriding reshape() ensures we have control over old
// AND new size.
addHierarchyBoundsListener(new HierarchyBoundsAdapter() {
@Override
public void ancestorResized(HierarchyEvent e) {
// if one of the parents is viewport, resized events will not be propagated down
// unless viewport is changing visibility of scrollbars.
// To make sure Label is able to re-wrap text when viewport size changes,
// initiate re-wrapping here by changing size of view
if (e.getChanged() instanceof JViewport) {
Rectangle viewportBounds = e.getChanged().getBounds();
if (viewportBounds.getWidth() < getWidth()) {
View view = getWrappingView();
if (view != null) {
view.setSize(viewportBounds.width, viewportBounds.height);
}
}
}
}
});
}
/** Creates a new instance of JTreeTablePanel */
public JTreeTablePanel(JTreeTable treeTable) {
super(new BorderLayout());
this.treeTable = treeTable;
initComponents();
hookHeaderColumnResize();
hookScrollBarValueChange();
hookTreeCollapsedExpanded();
addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (isShowing()) {
updateScrollBar(true);
}
}
}
});
}
@Override
protected void installListeners() {
if (WindowsLookAndFeel.isOnVista()) {
installWindowListener();
hierarchyListener =
new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags()
& HierarchyEvent.DISPLAYABILITY_CHANGED) != 0) {
if (menuBar.isDisplayable()) {
installWindowListener();
} else {
uninstallWindowListener();
}
}
}
};
menuBar.addHierarchyListener(hierarchyListener);
}
super.installListeners();
}
public void hierarchyChanged(HierarchyEvent event) {
if ((event.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) > 0) {
JComponent component = (JComponent)event.getComponent();
final Demo demo = (Demo)component.getClientProperty("swingset3.demo");
if (!component.isShowing()) {
demo.stop();
} else {
demoContainer.revalidate();
EventQueue.invokeLater(new Runnable() {
public void run() {
demo.start();
}
});
}
}
}
public LazyDemoPanel(String demoClassName) {
super();
this.demoClassName = "com.pump.showcase." + demoClassName;
setLayout(cardLayout);
add(loadingPanel, "loading");
cardLayout.show(this, "loading");
// loadingPanel is never really shown to the user,
// so there's no point in putting a throbber or other content in it
addHierarchyListener(new HierarchyListener() {
@Override
public void hierarchyChanged(HierarchyEvent e) {
if (loadingPanel.isShowing()) {
loadPanel();
removeHierarchyListener(this);
}
}
});
}
private void initComponents(JFRModel model) {
setLayout(new BorderLayout());
setOpaque(false);
if (model == null) {
add(MessageComponent.notAvailable(), BorderLayout.CENTER);
} else {
area = new HTMLTextArea(createSummary(model));
area.setBorder(BorderFactory.createEmptyBorder(14, 8, 14, 8));
add(area, BorderLayout.CENTER);
addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (isShowing()) {
removeHierarchyListener(this);
SwingUtilities.invokeLater(new Runnable() {
public void run() { firstShown(); }
});
}
}
}
});
}
}
private void showPopup(@Nonnull Project project, @Nonnull Component anchor) {
if (myFilterPopup != null || !anchor.isValid()) {
return;
}
JBPopupListener popupCloseListener = new JBPopupListener() {
@Override
public void onClosed(@Nonnull LightweightWindowEvent event) {
myFilterPopup = null;
}
};
myFilterPopup = JBPopupFactory.getInstance().createComponentPopupBuilder(createFilterPanel(), null).setModalContext(false).setFocusable(false).setResizable(true).setCancelOnClickOutside(false)
.setMinSize(new Dimension(200, 200)).setDimensionServiceKey(project, getDimensionServiceKey(), false).addListener(popupCloseListener).createPopup();
anchor.addHierarchyListener(new HierarchyListener() {
@Override
public void hierarchyChanged(HierarchyEvent e) {
if (e.getID() == HierarchyEvent.HIERARCHY_CHANGED && !anchor.isValid()) {
anchor.removeHierarchyListener(this);
if (myFilterPopup != null) {
myFilterPopup.cancel();
}
}
}
});
myFilterPopup.showUnderneathOf(anchor);
}
AboutDialogPanel() {
initComponents();
final Runnable repainter = new Runnable() {
public void run() { AboutDialogPanel.this.repaint(); }
};
addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0 && isShowing()) {
SwingUtilities.invokeLater(repainter);
SwingUtilities.invokeLater(new Runnable() {
public void run() { SwingUtilities.invokeLater(repainter); }
});
}
}
});
}
InstanceScrollPane() {
setBorder(BorderFactory.createEmptyBorder());
setViewportBorder(BorderFactory.createEmptyBorder());
// setViewportBorder(BorderFactory.createLineBorder(
// UIManager.getLookAndFeel().getID().equals("Metal") ? // NOI18N
// UIManager.getColor("Button.darkShadow") : // NOI18N
// UIManager.getColor("Button.shadow"))); // NOI18N
addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (instancePending && isShowing()) showInstanceImpl();
}
}
});
showInstanceImpl();
}
@Override public void updateUI() {
removeHierarchyListener(listener);
super.updateUI();
listener = e -> {
Component c = e.getComponent();
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0 && c.isShowing()) {
// Component w = SwingUtilities.getRoot(c);
// if (w instanceof JWindow) {
// System.out.println("Popup$HeavyWeightWindow");
// w.setBackground(new Color(0x0, true));
// }
Optional.ofNullable(SwingUtilities.getRoot(c))
.filter(JWindow.class::isInstance).map(JWindow.class::cast)
.ifPresent(w -> w.setBackground(new Color(0x0, true)));
}
};
addHierarchyListener(listener);
setOpaque(false);
setBorder(BorderFactory.createEmptyBorder(8, 5, 0, 5));
}
public static void makeOwningDialogResizable(@Nonnull final Component component, @Nonnull @MustNotContainNull final Runnable... extraActions) {
final HierarchyListener listener = new HierarchyListener() {
@Override
public void hierarchyChanged(@Nonnull final HierarchyEvent e) {
final Window window = SwingUtilities.getWindowAncestor(component);
if (window instanceof Dialog) {
final Dialog dialog = (Dialog) window;
if (!dialog.isResizable()) {
dialog.setResizable(true);
component.removeHierarchyListener(this);
for (final Runnable r : extraActions) {
r.run();
}
}
}
}
};
component.addHierarchyListener(listener);
}
@Override
protected void installListeners() {
if (WindowsLookAndFeel.isOnVista()) {
installWindowListener();
hierarchyListener =
new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags()
& HierarchyEvent.DISPLAYABILITY_CHANGED) != 0) {
if (menuBar.isDisplayable()) {
installWindowListener();
} else {
uninstallWindowListener();
}
}
}
};
menuBar.addHierarchyListener(hierarchyListener);
}
super.installListeners();
}
InstanceScrollPane(Heap heap) {
this.heap = heap;
setBorder(BorderFactory.createEmptyBorder());
setViewportBorder(BorderFactory.createLineBorder(
UIManager.getLookAndFeel().getID().equals("Metal") ? // NOI18N
UIManager.getColor("Button.darkShadow") : // NOI18N
UIManager.getColor("Button.shadow"))); // NOI18N
addHierarchyListener(new HierarchyListener() {
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (instancePending && isShowing()) showInstanceImpl();
}
}
});
}
static void install( JRootPane rootPane ) {
if( !isSupported() )
return;
// check whether root pane already has a parent, which is the case when switching LaF
if( rootPane.getParent() != null )
return;
// Use hierarchy listener to wait until the root pane is added to a window.
// Enabling JBR decorations must be done very early, probably before
// window becomes displayable (window.isDisplayable()). Tried also using
// "ancestor" property change event on root pane, but this is invoked too late.
HierarchyListener addListener = new HierarchyListener() {
@Override
public void hierarchyChanged( HierarchyEvent e ) {
if( e.getChanged() != rootPane || (e.getChangeFlags() & HierarchyEvent.PARENT_CHANGED) == 0 )
return;
Container parent = e.getChangedParent();
if( parent instanceof Window )
install( (Window) parent );
// use invokeLater to remove listener to avoid that listener
// is removed while listener queue is processed
EventQueue.invokeLater( () -> {
rootPane.removeHierarchyListener( this );
} );
}
};
rootPane.addHierarchyListener( addListener );
}
@Override
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
if (!list.isShowing()) {
lastLocation = null;
setHoverIndex(-1);
}
// else: nothing to be done as mouse location is not known (only 1.5)
}
}