下面列出了怎么用javax.swing.event.PopupMenuEvent的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Alter the bounds of the popup just before it is made visible.
*/
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
@SuppressWarnings("unchecked")
JComboBox<E> comboBox = (JComboBox<E>) e.getSource();
if (comboBox.getItemCount() == 0) return;
final Object child = comboBox.getAccessibleContext().getAccessibleChild(0);
if (child instanceof BasicComboPopup) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
customizePopup((BasicComboPopup) child);
}
});
}
}
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
JPopupMenu popup = (JPopupMenu) e.getSource();
popup.removeAll();
popup.setInvoker(null);
// hack
KeyStroke esc = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
JComponent c = getOutputPane().getTextView();
c.getInputMap().put(esc, handle);
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(esc, handle);
//hack end
popup.removePopupMenuListener(this);
for (TabAction action : popupItems) {
action.clearListeners();
}
}
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
JComboBox box = (JComboBox) e.getSource();
Object comp = box.getUI().getAccessibleChild(box, 0);
if (!(comp instanceof JPopupMenu)) {
return;
}
JComponent scrollPane = (JComponent) ((JPopupMenu) comp).getComponent(0);
Dimension size = new Dimension();
size.width = scrollPane.getPreferredSize().width;
final int boxItemCount = box.getModel().getSize();
for (int i = 0; i < boxItemCount; i++) {
final JLabel label = new JLabel();
Object elementAt = box.getModel().getElementAt(i);
if (elementAt != null && elementAt instanceof Product) {
label.setText(((Product) elementAt).getDisplayName());
}
size.width = Math.max(label.getPreferredSize().width, size.width);
}
size.height = scrollPane.getPreferredSize().height;
scrollPane.setPreferredSize(size);
scrollPane.setMaximumSize(size);
}
public DarkScrollableTabSupport(final DarkTabbedPaneUI ui, final int tabPlacement) {
super(ui);
this.ui = ui;
viewport = new DarkScrollableTabViewport(ui);
tabPanel = new DarkScrollableTabPanel(ui);
viewport.setView(tabPanel);
viewport.addMouseWheelListener(this);
moreTabsButton = ui.createMoreTabsButton();
moreTabsButton.setVisible(false);
moreTabsButton.addActionListener(this);
newTabButton = ui.createNewTabButton();
newTabButton.setVisible(PropertyUtil.getBooleanProperty(ui.tabPane, DarkTabbedPaneUI.KEY_SHOW_NEW_TAB_BUTTON));
scrollPopupMenu = new ScrollPopupMenu(UIManager.getInt(DarkTabbedPaneUI.KEY_MAX_POPUP_HEIGHT));
PopupMenuListener popupMenuListener = new PopupMenuAdapter() {
@Override
public void popupMenuWillBecomeInvisible(final PopupMenuEvent e) {
lastClickEvent = System.currentTimeMillis();
}
};
scrollPopupMenu.addPopupMenuListener(popupMenuListener);
ui.tabPane.add(moreTabsButton);
timer = new Timer(SCROLL_REWIND_DELAY, e -> endScroll());
timer.setRepeats(false);
}
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
if (selectedItem instanceof DataBean) {
historyMenuItem.setEnabled(true);
} else {
historyMenuItem.setEnabled(false);
}
}
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
Popup popup = ((PopMenuUIExt) jpopup.getUI()).getPopup();
if (popup != null) {
isLightWeight = !popup.getClass().toString().
contains("HeavyWeightPopup");
}
}
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
popupVisible = false;
mainButton.getModel().setRollover(false);
arrowButton.getModel().setSelected(false);
((JPopupMenu) e.getSource()).removePopupMenuListener(this); // act as good programmer :)
}
/**
* This method is called before the popup menu becomes invisible
* Note that a JPopupMenu can become invisible any time
*
* @param e Event.
*/
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
if (list != null) {
list.repaint();
}
}
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
if (popup!=null) {
popup.hide();
popup = null;
}
singleRefactoringCombo.getAccessibleContext().removePropertyChangeListener(listener);
}
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
dummy.setVisible(false);
}
});
}
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
popupVisible = false;
mainButton.getModel().setRollover(false);
arrowButton.getModel().setSelected(false);
((JPopupMenu) e.getSource()).removePopupMenuListener(this);
}
@Override
public void popupMenuWillBecomeVisible ( final PopupMenuEvent e )
{
/**
* Do nothing by default.
*/
}
@Override public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
EventQueue.invokeLater(() -> {
JComboBox<?> combo = (JComboBox<?>) e.getSource();
Accessible a = combo.getAccessibleContext().getAccessibleChild(0);
// Or Accessible a = combo.getUI().getAccessibleChild(combo, 0);
if (a instanceof JPopupMenu) {
JPopupMenu pop = (JPopupMenu) a;
Point p = new Point(combo.getSize().width, 0);
SwingUtilities.convertPointToScreen(p, combo);
pop.setLocation(p);
}
});
}
public void popupMenuWillBecomeInvisible(PopupMenuEvent event) {
popupVisible = false;
mainButton.getModel().setRollover(false);
arrowButton.getModel().setSelected(false);
((JPopupMenu) event.getSource()).removePopupMenuListener(this);
}
@Override
public void popupMenuCanceled(PopupMenuEvent e) {
// without the check the previous non-special item would be displayed
// while calling DataComboBoxModel.newItemActionPerformed()
// instead of NEW_ITEM, but this is unwanted. Same for
// popupMenuWillBecomeImvisible().
if (!performingNewItemAction) {
setPreviousNonSpecialItem((JComboBox)e.getSource());
}
}
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
node = getNode();
setEnabled(node != null);
}
@Override
public void popupMenuWillBecomeInvisible(final PopupMenuEvent arg0) {
menu.removeAll();
}
@Override
public void popupMenuCanceled(final PopupMenuEvent arg0) {
// Required to implement PopupMenuListener
}
@Override public void popupMenuCanceled(PopupMenuEvent e) {
}
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
changedService = false;
}
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
changedService = false;
}
@Override
public void popupMenuCanceled(PopupMenuEvent e) {
}
@Override
public void popupMenuCanceled(PopupMenuEvent e) {}
@Override
public void popupMenuCanceled(PopupMenuEvent arg0) {
// not needed
}
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
if (doNotClearFilterOnPopupHide) return;
// the popup menu is being hidden, so clear the filter to return the ComboBoxModel to its unfiltered state
applyFilter("");
}
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
if (changedService) {
changedService = false;
updatePanels();
}
}
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
disposeMenu();
}
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
// stub
}
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
if (changedService) {
changedService = false;
updatePanels();
}
}
public void popupMenuCanceled(PopupMenuEvent e) {
}