當前位置: 首頁>>代碼示例>>Java>>正文


Java BasicComboPopup類代碼示例

本文整理匯總了Java中javax.swing.plaf.basic.BasicComboPopup的典型用法代碼示例。如果您正苦於以下問題:Java BasicComboPopup類的具體用法?Java BasicComboPopup怎麽用?Java BasicComboPopup使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


BasicComboPopup類屬於javax.swing.plaf.basic包,在下文中一共展示了BasicComboPopup類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getItemPointToClick

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
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];
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:19,代碼來源:MouseComboBoxTest.java

示例2: MaterialComboBox

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
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);
}
 
開發者ID:leMaik,項目名稱:swing-material,代碼行數:27,代碼來源:MaterialComboBox.java

示例3: createPopup

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
@Override
protected ComboPopup createPopup() {
    return new BasicComboPopup(comboBox) {
        private static final long serialVersionUID = -1460253465809092623L;

        @Override
        protected void configurePopup() {
            setBorderPainted(true);
            setBorder(BorderFactory.createLineBorder(Template.COLOR_LIGHT_GRAY));
            setOpaque(false);
            add(scroller);
            setFocusable(false);
        }

    };

}
 
開發者ID:CollapsedDom,項目名稱:Stud.IP-Client,代碼行數:18,代碼來源:DropDownBox.java

示例4: lookupPopupItem

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
private int lookupPopupItem(String pattern, boolean select) {
    BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);
    JList list = popup.getList();
    int nextMatch = list.getNextMatch(pattern, 0, Position.Bias.Forward);
    if (list.getSelectedIndex() > 0) {
        nextMatch = nextMatch < 0 ? list.getNextMatch(pattern, list.getSelectedIndex(), Position.Bias.Backward) : nextMatch;
    }
    if (select) {
        if (nextMatch >= 0) {
            list.ensureIndexIsVisible(nextMatch);
            list.setSelectedIndex(nextMatch);
        } else {
            list.getSelectionModel().clearSelection();
        }
    }
    return nextMatch;
}
 
開發者ID:vkravets,項目名稱:FileTemplatesVariable,代碼行數:18,代碼來源:AutoCompletion.java

示例5: popupMenuWillBecomeVisible

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
/**
 * 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);
            }
        });
    }
}
 
開發者ID:theaidenlab,項目名稱:Juicebox,代碼行數:21,代碼來源:BoundsPopupMenuListener.java

示例6: customizePopup

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
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);
    }
}
 
開發者ID:theaidenlab,項目名稱:Juicebox,代碼行數:27,代碼來源:BoundsPopupMenuListener.java

示例7: popupWider

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
private void popupWider(BasicComboPopup popup) {
    @SuppressWarnings("unchecked")
    JList<E> list = 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);
}
 
開發者ID:theaidenlab,項目名稱:Juicebox,代碼行數:27,代碼來源:BoundsPopupMenuListener.java

示例8: testGetMinimumSize

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
public void testGetMinimumSize() throws Exception {
    ui.setComboBox(comboBox);
    ComboPopup popup = new BasicComboPopup(comboBox);
    ui.setPopup(popup);
    ui.setListBox(popup.getList());
    ui.installListeners();
    comboBox.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
    Dimension listPart = new BasicComboBoxRenderer().getListCellRendererComponent(
            popup.getList(), "", -1, false, false).getPreferredSize();
    Dimension expectedSize = new Dimension(listPart.width + listPart.height + 8,
            listPart.height + 8);
    assertEquals(expectedSize, ui.getMinimumSize(null));
    assertEquals(expectedSize, ui.getCachedMinimumSize());
    ui.setCachedMinimumSize(new Dimension(100, 100));
    assertEquals(ui.getCachedMinimumSize(), ui.getMinimumSize(null));
    comboBox.addItem("aaa");
    listPart = new BasicComboBoxRenderer().getListCellRendererComponent(popup.getList(),
            "aaa", -1, false, false).getPreferredSize();
    expectedSize = new Dimension(listPart.width + listPart.height + 8, listPart.height + 8);
    assertEquals(expectedSize, ui.getMinimumSize(null));
}
 
開發者ID:shannah,項目名稱:cn1,代碼行數:22,代碼來源:MetalComboBoxUITest.java

示例9: popupMenuWillBecomeVisible

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
/**
 * Alter the bounds of the popup just before it is made visible.
 */
@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(new Runnable() {
			public void run() {
				customizePopup((BasicComboPopup) child);
			}
		});
	}
}
 
開發者ID:PGWelch,項目名稱:com.opendoorlogistics,代碼行數:21,代碼來源:BoundsPopupMenuListener.java

示例10: popupWider

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
protected void popupWider(BasicComboPopup popup) {
	JList list = 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);
}
 
開發者ID:PGWelch,項目名稱:com.opendoorlogistics,代碼行數:25,代碼來源:BoundsPopupMenuListener.java

示例11: createPopup

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
@Override
protected ComboPopup createPopup() {
	BasicComboPopup popup = new BasicComboPopup(comboBox) {

		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;

		@Override
		public void show() {
			Dimension popupSize = ((SteppedComboBox) comboBox).getPopupSize();
			popupSize.setSize(popupSize.width, getPopupHeightForRowCount(comboBox.getMaximumRowCount()));
			Rectangle popupBounds = computePopupBounds(0, comboBox.getBounds().height, popupSize.width, popupSize.height);
			scroller.setMaximumSize(popupBounds.getSize());
			scroller.setPreferredSize(popupBounds.getSize());
			scroller.setMinimumSize(popupBounds.getSize());
			list.invalidate();
			int selectedIndex = comboBox.getSelectedIndex();
			if (selectedIndex == -1) {
				list.clearSelection();
			} else {
				list.setSelectedIndex(selectedIndex);
			}
			list.ensureIndexIsVisible(list.getSelectedIndex());
			setLightWeightPopupEnabled(comboBox.isLightWeightPopupEnabled());

			show(comboBox, popupBounds.x, popupBounds.y);
		}
	};
	popup.getAccessibleContext().setAccessibleParent(comboBox);
	return popup;
}
 
開發者ID:max6cn,項目名稱:jmt,代碼行數:34,代碼來源:SteppedComboBoxUI.java

示例12: fireActiveDescendant

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
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);
            }
        }
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:35,代碼來源:JPopupMenu.java

示例13: getPopup

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
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");
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:10,代碼來源:bug4743225.java

示例14: createPopup

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
@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;
}
 
開發者ID:workcraft,項目名稱:workcraft,代碼行數:12,代碼來源:FlatComboBox.java

示例15: updateStateBoxColor

import javax.swing.plaf.basic.BasicComboPopup; //導入依賴的package包/類
/**
 * Updates the color of the user state combo box
 */
private void updateStateBoxColor(){
        ComboUserState.setForeground(state_colors[ComboUserState.getSelectedIndex()]);
        Object child = ComboUserState.getAccessibleContext().getAccessibleChild(0);
        BasicComboPopup popup = (BasicComboPopup)child;
        JList list = popup.getList();
        list.setSelectionForeground(state_colors[ComboUserState.getSelectedIndex()]);
        list.setSelectionBackground(Color.WHITE);
}
 
開發者ID:jlsuarezdiaz,項目名稱:NoMoreDropboxMSN,代碼行數:12,代碼來源:MSNView.java


注:本文中的javax.swing.plaf.basic.BasicComboPopup類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。