javax.swing.plaf.basic.BasicComboPopup Java Examples
The following examples show how to use
javax.swing.plaf.basic.BasicComboPopup.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: BoundsPopupMenuListener.java From Juicebox with MIT License | 6 votes |
/** * 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); } }); } }
Example #2
Source File: MaterialComboBox.java From swing-material with MIT License | 6 votes |
public MaterialComboBox() { setModel(new DefaultComboBoxModel<T>()); setRenderer(new FieldRenderer<T>(this)); setUI(new BasicComboBoxUI() { @Override protected ComboPopup createPopup() { BasicComboPopup popup = new Popup(comboBox); popup.getAccessibleContext().setAccessibleParent(comboBox); return popup; } @Override protected JButton createArrowButton() { JButton button = new javax.swing.plaf.basic.BasicArrowButton( javax.swing.plaf.basic.BasicArrowButton.SOUTH, MaterialColor.TRANSPARENT, MaterialColor.TRANSPARENT, MaterialColor.TRANSPARENT, MaterialColor.TRANSPARENT); button.setName("ComboBox.arrowButton"); return button; } }); setOpaque(false); setBackground(MaterialColor.TRANSPARENT); }
Example #3
Source File: AbstractSuggestionBoxValueCellEditor.java From rapidminer-studio with GNU Affero General Public License v3.0 | 6 votes |
/** * Creates a grayed out version of the loading gif that can be used in a combobox through an image observer * * @since 9.2.0 */ private static ImageIcon makeLoadingIcon(JComboBox comboBox) { ImageIcon icon = new ImageIcon(LOADING_ICON); icon.setImageObserver((img, infoflags, x, y, w, h) -> { boolean isFrameOrAll = (infoflags & (ImageObserver.FRAMEBITS | ImageObserver.ALLBITS)) != 0; if (!comboBox.isShowing() || !isFrameOrAll) { return !isFrameOrAll; } if (comboBox.getSelectedIndex() == 0) { comboBox.repaint(); } BasicComboPopup p = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0); JList list = p.getList(); if (list.isShowing()) { list.repaint(); } return true; }); return icon; }
Example #4
Source File: MouseComboBoxTest.java From openjdk-jdk8u with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #5
Source File: MouseComboBoxTest.java From jdk8u-jdk with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #6
Source File: MouseComboBoxTest.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #7
Source File: MouseComboBoxTest.java From jdk8u60 with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #8
Source File: MouseComboBoxTest.java From jdk8u_jdk with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #9
Source File: XDMComboBoxUI.java From xdm with GNU General Public License v2.0 | 6 votes |
@Override protected ComboPopup createPopup() { return new BasicComboPopup(comboBox) { /** * */ private static final long serialVersionUID = -4232501153552563408L; @Override protected JScrollPane createScroller() { JScrollPane scroller = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroller.setVerticalScrollBar(new DarkScrollBar(JScrollBar.VERTICAL)); return scroller; } }; }
Example #10
Source File: MouseComboBoxTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #11
Source File: MouseComboBoxTest.java From TencentKona-8 with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #12
Source File: BoundsPopupMenuListener.java From Juicebox with MIT License | 6 votes |
private void customizePopup(BasicComboPopup popup) { scrollPane = getScrollPane(popup); if (popupWider) popupWider(popup); checkHorizontalScrollBar(popup); // For some reason in JDK7 the popup will not display at its preferred // width unless its location has been changed from its default // (ie. for normal "pop down" shift the popup and reset) Component comboBox = popup.getInvoker(); Point location = comboBox.getLocationOnScreen(); if (popupAbove) { int height = popup.getPreferredSize().height; popup.setLocation(location.x, location.y - height); } else { //int height = comboBox.getPreferredSize().height; //popup.setLocation(location.x, location.y + height - 1); //popup.setLocation(location.x, location.y + height); //TODO should not be hardcoded popup.setLocation(location.x + 5, location.y + 35); } }
Example #13
Source File: BoundsPopupMenuListener.java From Juicebox with MIT License | 6 votes |
private void popupWider(BasicComboPopup popup) { @SuppressWarnings("unchecked") JList<E> list = (JList<E>) popup.getList(); // Determine the maximimum width to use: // a) determine the popup preferred width // b) limit width to the maximum if specified // c) ensure width is not less than the scroll pane width int popupWidth = list.getPreferredSize().width + 5 // make sure horizontal scrollbar doesn't appear + getScrollBarWidth(popup, scrollPane); if (maximumWidth != -1) { popupWidth = Math.min(popupWidth, maximumWidth); } Dimension scrollPaneSize = scrollPane.getPreferredSize(); popupWidth = Math.max(popupWidth, scrollPaneSize.width); // Adjust the width scrollPaneSize.width = popupWidth; scrollPane.setPreferredSize(scrollPaneSize); scrollPane.setMaximumSize(scrollPaneSize); }
Example #14
Source File: MouseComboBoxTest.java From dragonwell8_jdk with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #15
Source File: MouseComboBoxTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #16
Source File: MouseComboBoxTest.java From hottub with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #17
Source File: MouseComboBoxTest.java From jdk8u-jdk with GNU General Public License v2.0 | 6 votes |
private static Point getItemPointToClick(final int item) throws Exception { final Point[] result = new Point[1]; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { BasicComboPopup popup = (BasicComboPopup)comboBoxUI.getComboPopup(); Point point = popup.getLocationOnScreen(); Dimension size = popup.getSize(); int step = size.height / items.length; point.x += size.width / 2; point.y += step / 2 + step * item; result[0] = point; } }); return result[0]; }
Example #18
Source File: BoundsPopupMenuListener.java From openAGV with Apache License 2.0 | 6 votes |
/** * Adjusts the width of the scrollpane used by the popup. */ protected void popupWider(BasicComboPopup popup) { JList<?> list = popup.getList(); // Determine the maximimum width to use: // a) determine the popup preferred width // b) ensure width is not less than the scroll pane width int popupWidth = list.getPreferredSize().width + 5 // make sure horizontal scrollbar doesn't appear + getScrollBarWidth(popup, scrollPane); Dimension scrollPaneSize = scrollPane.getPreferredSize(); popupWidth = Math.max(popupWidth, scrollPaneSize.width); // Adjust the width scrollPaneSize.width = popupWidth; scrollPane.setPreferredSize(scrollPaneSize); scrollPane.setMaximumSize(scrollPaneSize); }
Example #19
Source File: BoundsPopupMenuListener.java From Juicebox with MIT License | 5 votes |
private int getScrollBarWidth(BasicComboPopup popup, JScrollPane scrollPane) { int scrollBarWidth = 0; @SuppressWarnings("unchecked") JComboBox<E> comboBox = (JComboBox<E>) popup.getInvoker(); if (comboBox.getItemCount() > comboBox.getMaximumRowCount()) { JScrollBar vertical = scrollPane.getVerticalScrollBar(); scrollBarWidth = vertical.getPreferredSize().width; } return scrollBarWidth; }
Example #20
Source File: bug4743225.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
public static BasicComboPopup getPopup() { AccessibleContext c = cb.getAccessibleContext(); for(int i = 0; i < c.getAccessibleChildrenCount(); i ++) { if (c.getAccessibleChild(i) instanceof BasicComboPopup) { return (BasicComboPopup) c.getAccessibleChild(i); } } throw new AssertionError("No BasicComboPopup found"); }
Example #21
Source File: BoundsPopupMenuListener.java From Juicebox with MIT License | 5 votes |
private boolean horizontalScrollBarWillBeVisible(BasicComboPopup popup, JScrollPane scrollPane) { @SuppressWarnings("unchecked") JList<E> list = (JList<E>) popup.getList(); int scrollBarWidth = getScrollBarWidth(popup, scrollPane); int popupWidth = list.getPreferredSize().width + scrollBarWidth; return popupWidth > scrollPane.getPreferredSize().width; }
Example #22
Source File: BoundsPopupMenuListener.java From Juicebox with MIT License | 5 votes |
private JScrollPane getScrollPane(BasicComboPopup popup) { @SuppressWarnings("unchecked") JList<E> list = (JList<E>) popup.getList(); Container c = SwingUtilities.getAncestorOfClass(JScrollPane.class, list); return (JScrollPane) c; }
Example #23
Source File: BoundsPopupMenuListener.java From openAGV with Apache License 2.0 | 5 votes |
/** * Alter the bounds of the popup just before it is made visible. * * @param e The event. */ @Override public void popupMenuWillBecomeVisible(PopupMenuEvent e) { JComboBox<?> comboBox = (JComboBox) e.getSource(); if (comboBox.getItemCount() == 0) { return; } final Object child = comboBox.getAccessibleContext().getAccessibleChild(0); if (child instanceof BasicComboPopup) { SwingUtilities.invokeLater(() -> customizePopup((BasicComboPopup) child)); } }
Example #24
Source File: JPopupMenu.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
private void fireActiveDescendant() { if (JPopupMenu.this instanceof BasicComboPopup) { // get the popup list JList<?> popupList = ((BasicComboPopup)JPopupMenu.this).getList(); if (popupList == null) { return; } // get the first selected item AccessibleContext ac = popupList.getAccessibleContext(); AccessibleSelection selection = ac.getAccessibleSelection(); if (selection == null) { return; } Accessible a = selection.getAccessibleSelection(0); if (a == null) { return; } AccessibleContext selectedItem = a.getAccessibleContext(); // fire the event with the popup invoker as the source. if (selectedItem != null && invoker != null) { AccessibleContext invokerContext = invoker.getAccessibleContext(); if (invokerContext != null) { // Check invokerContext because Component.getAccessibleContext // returns null. Classes that extend Component are responsible // for returning a non-null AccessibleContext. invokerContext.firePropertyChange( ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY, null, selectedItem); } } } }
Example #25
Source File: FlatComboBox.java From workcraft with MIT License | 5 votes |
@Override protected ComboPopup createPopup() { BasicComboPopup popup = new BasicComboPopup(comboBox) { @Override protected Rectangle computePopupBounds(int px, int py, int pw, int ph) { return super.computePopupBounds(px, py, Math.max(comboBox.getPreferredSize().width, pw), ph); } }; popup.getAccessibleContext().setAccessibleParent(comboBox); return popup; }
Example #26
Source File: DarculaPopupMenuBorder.java From consulo with Apache License 2.0 | 5 votes |
private static Shape getBorderShape(Component c, Rectangle rect) { Path2D border = new Path2D.Float(Path2D.WIND_EVEN_ODD); if (isComboPopup(c) && ((BasicComboPopup)c).getClientProperty("JComboBox.isCellEditor") == Boolean.TRUE) { JBInsets.removeFrom(rect, JBInsets.create(0, 1)); } border.append(rect, false); Rectangle innerRect = new Rectangle(rect); JBInsets.removeFrom(innerRect, JBUI.insets(JBUI.getInt("PopupMenu.borderWidth", 1))); border.append(innerRect, false); return border; }
Example #27
Source File: JPopupMenu.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
private void fireActiveDescendant() { if (JPopupMenu.this instanceof BasicComboPopup) { // get the popup list JList<?> popupList = ((BasicComboPopup)JPopupMenu.this).getList(); if (popupList == null) { return; } // get the first selected item AccessibleContext ac = popupList.getAccessibleContext(); AccessibleSelection selection = ac.getAccessibleSelection(); if (selection == null) { return; } Accessible a = selection.getAccessibleSelection(0); if (a == null) { return; } AccessibleContext selectedItem = a.getAccessibleContext(); // fire the event with the popup invoker as the source. if (selectedItem != null && invoker != null) { AccessibleContext invokerContext = invoker.getAccessibleContext(); if (invokerContext != null) { // Check invokerContext because Component.getAccessibleContext // returns null. Classes that extend Component are responsible // for returning a non-null AccessibleContext. invokerContext.firePropertyChange( ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY, null, selectedItem); } } } }
Example #28
Source File: bug4743225.java From hottub with GNU General Public License v2.0 | 5 votes |
public static BasicComboPopup getPopup() { AccessibleContext c = cb.getAccessibleContext(); for(int i = 0; i < c.getAccessibleChildrenCount(); i ++) { if (c.getAccessibleChild(i) instanceof BasicComboPopup) { return (BasicComboPopup) c.getAccessibleChild(i); } } throw new AssertionError("No BasicComboPopup found"); }
Example #29
Source File: JPopupMenu.java From hottub with GNU General Public License v2.0 | 5 votes |
private void fireActiveDescendant() { if (JPopupMenu.this instanceof BasicComboPopup) { // get the popup list JList<?> popupList = ((BasicComboPopup)JPopupMenu.this).getList(); if (popupList == null) { return; } // get the first selected item AccessibleContext ac = popupList.getAccessibleContext(); AccessibleSelection selection = ac.getAccessibleSelection(); if (selection == null) { return; } Accessible a = selection.getAccessibleSelection(0); if (a == null) { return; } AccessibleContext selectedItem = a.getAccessibleContext(); // fire the event with the popup invoker as the source. if (selectedItem != null && invoker != null) { AccessibleContext invokerContext = invoker.getAccessibleContext(); if (invokerContext != null) { // Check invokerContext because Component.getAccessibleContext // returns null. Classes that extend Component are responsible // for returning a non-null AccessibleContext. invokerContext.firePropertyChange( ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY, null, selectedItem); } } } }
Example #30
Source File: JPopupMenu.java From Java8CN with Apache License 2.0 | 5 votes |
private void fireActiveDescendant() { if (JPopupMenu.this instanceof BasicComboPopup) { // get the popup list JList<?> popupList = ((BasicComboPopup)JPopupMenu.this).getList(); if (popupList == null) { return; } // get the first selected item AccessibleContext ac = popupList.getAccessibleContext(); AccessibleSelection selection = ac.getAccessibleSelection(); if (selection == null) { return; } Accessible a = selection.getAccessibleSelection(0); if (a == null) { return; } AccessibleContext selectedItem = a.getAccessibleContext(); // fire the event with the popup invoker as the source. if (selectedItem != null && invoker != null) { AccessibleContext invokerContext = invoker.getAccessibleContext(); if (invokerContext != null) { // Check invokerContext because Component.getAccessibleContext // returns null. Classes that extend Component are responsible // for returning a non-null AccessibleContext. invokerContext.firePropertyChange( ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY, null, selectedItem); } } } }