Java 类javax.swing.plaf.basic.BasicComboBoxEditor 实例源码
项目:incubator-netbeans
文件:GenericToolbar.java
public Dimension getPreferredSize() {
Dimension dim = super.getPreferredSize();
if (PREFERRED_HEIGHT == -1) {
GenericToolbar tb = new GenericToolbar();
tb.setBorder(getBorder());
tb.setBorderPainted(isBorderPainted());
tb.setRollover(isRollover());
tb.setFloatable(isFloatable());
Icon icon = Icons.getIcon(GeneralIcons.SAVE);
tb.add(new JButton("Button", icon)); // NOI18N
tb.add(new JToggleButton("Button", icon)); // NOI18N
tb.add(new JTextField("Text")); // NOI18N
JComboBox c = new JComboBox();
c.setEditor(new BasicComboBoxEditor());
c.setRenderer(new BasicComboBoxRenderer());
tb.add(c);
tb.addSeparator();
PREFERRED_HEIGHT = tb.getSuperPreferredSize().height;
}
dim.height = getParent() instanceof JToolBar ? 1 :
Math.max(dim.height, PREFERRED_HEIGHT);
return dim;
}
项目:intellij-ce-playground
文件:TargetOptionsComponent.java
private static ComboBox createTargetOptionsCombo() {
final ComboBox combo = new ComboBox(new TargetLevelComboboxModel());
//combo.setRenderer(new DefaultListCellRenderer() {
// @Override
// public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
// try {
// return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
// }
// finally {
// //if ("".equals(value)) {
// // setText(COMPILER_DEFAULT);
// //}
// }
// }
//});
combo.setEditable(true);
combo.setEditor(new BasicComboBoxEditor() {
@Override
protected JTextField createEditorComponent() {
return new HintTextField(COMPILER_DEFAULT, 12);
}
});
return combo;
}
项目:binnavi
文件:CGraphSearchField.java
/**
* Creates a new search field.
*
* @param graph Graph searched through by this field.
*/
public CGraphSearchField(final ZyGraph graph) {
super(20);
Preconditions.checkNotNull(graph, "IE01812: Target view can't be null");
m_graph = graph;
m_searcher = new GraphSearcher();
setEditor(new BasicComboBoxEditor() {
@Override
protected JTextField createEditorComponent() {
return m_textField;
}
});
registerHotkeys();
}
项目:BurpSuiteLoggerPlusPlus
文件:HistoryField.java
HistoryField(final int maxHistory){
this.maxHistory = maxHistory;
history = new ArrayList<String>(){
@Override
public boolean add(String s) {
if(this.size() >= maxHistory) remove(0);
return super.add(s);
}
};
this.setModel(new HistoryComboModel());
this.setEditor(new BasicComboBoxEditor(){
JTextField editorComponent;
@Override
protected JTextField createEditorComponent() {
editorComponent = new JTextField();
return editorComponent;
}
@Override
public Component getEditorComponent() {
return editorComponent;
}
});
this.setEditable(true);
this.setOpaque(true);
}
项目:tools-idea
文件:TargetOptionsComponent.java
private static ComboBox createTargetOptionsCombo() {
final ComboBox combo = new ComboBox(new TargetLevelComboboxModel());
//combo.setRenderer(new DefaultListCellRenderer() {
// @Override
// public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
// try {
// return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
// }
// finally {
// //if ("".equals(value)) {
// // setText(COMPILER_DEFAULT);
// //}
// }
// }
//});
combo.setEditable(true);
combo.setEditor(new BasicComboBoxEditor() {
@Override
protected JTextField createEditorComponent() {
return new HintTextField(COMPILER_DEFAULT, 10);
}
});
return combo;
}
项目:mmj2
文件:ForWhatScrnMap.java
public ForWhatScrnMap(final int i, final String[] as,
final DefaultComboBoxModel<String> defaultcomboboxmodel)
{
super(SearchOptionsConstants.FOR_WHAT_FIELD_ID[i],
defaultcomboboxmodel);
setEditable(true);
setEditor(new BasicComboBoxEditor());
setSelectedItem(SearchOptionsConstants.FIELD_ATTR[fieldId].defaultText);
setDefaultToCurrentValue();
setBorder(BorderFactory
.createLineBorder(SearchOptionsConstants.FOR_WHAT_BORDER_COLOR, 3));
((JTextField)getEditor().getEditorComponent())
.addMouseListener(new SearchJTextFieldPopupMenuListener(
new SearchJTextFieldPopupMenu()));
((JTextField)getEditor().getEditorComponent())
.setToolTipText(SearchOptionsConstants.FIELD_ATTR[fieldId].toolTip);
}
项目:rapidminer
文件:ParameterTupelCellEditor.java
private void constructPanel(String[] values) {
// constructing editors
editors = new PropertyValueCellEditor[types.length];
for (int i = 0; i < types.length; i++) {
editors[i] = PropertyPanel.instantiateValueCellEditor(types[i], operator);
}
// building panel
panel = new JPanel();
panel.setFocusable(true);
panel.setLayout(new GridLayout(1, editors.length));
for (int i = 0; i < types.length; i++) {
Component editorComponent = editors[i].getTableCellEditorComponent(null, values[i], false, 0, 0);
if (editorComponent instanceof JComboBox && ((JComboBox) editorComponent).isEditable()) {
if (((JComboBox) editorComponent).isEditable()) {
ComboBoxEditor editor = ((JComboBox) editorComponent).getEditor();
if (editor instanceof BasicComboBoxEditor) {
editor.getEditorComponent().addFocusListener(focusListener);
}
} else {
editorComponent.addFocusListener(focusListener);
}
} else if (editorComponent instanceof JPanel) {
JPanel editorPanel = (JPanel) editorComponent;
Component[] components = editorPanel.getComponents();
for (Component comp : components) {
comp.addFocusListener(focusListener);
}
} else {
editorComponent.addFocusListener(focusListener);
}
panel.add(editorComponent);
panel.addFocusListener(focusListener);
}
}
项目:openjdk-jdk10
文件:TestBasicComboBoxEditor.java
private static void testBasicComboBoxEditor() {
BasicComboBoxEditor comboBoxEditor = new BasicComboBoxEditor();
comboBoxEditor.setItem(new UserComboBoxEditorType("100"));
JTextField editor = (JTextField) comboBoxEditor.getEditorComponent();
editor.setText("200");
UserComboBoxEditorType item = (UserComboBoxEditorType) comboBoxEditor.getItem();
if (!item.str.equals("200")) {
throw new RuntimeException("Wrong itme value!");
}
}
项目:openjdk9
文件:TestBasicComboBoxEditor.java
private static void testBasicComboBoxEditor() {
BasicComboBoxEditor comboBoxEditor = new BasicComboBoxEditor();
comboBoxEditor.setItem(new UserComboBoxEditorType("100"));
JTextField editor = (JTextField) comboBoxEditor.getEditorComponent();
editor.setText("200");
UserComboBoxEditorType item = (UserComboBoxEditorType) comboBoxEditor.getItem();
if (!item.str.equals("200")) {
throw new RuntimeException("Wrong itme value!");
}
}
项目:Maxent
文件:Query.java
/** Create a choice menu.
* @param name The name used to identify the entry (when calling get).
* @param label The label to attach to the entry.
* @param values The list of possible choices.
* @param defaultChoice Default choice.
* @param editable True if an arbitrary choice can be entered, in addition
* to the choices in values.
* @param background The background color for the editable part.
* @param foreground The foreground color for the editable part.
*/
public void addChoice(String name, String label, String[] values,
String defaultChoice, boolean editable, final Color background,
final Color foreground) {
JLabel lbl = new JLabel(label + ": ");
lbl.setBackground(_background);
JComboBox combobox = new JComboBox(values);
combobox.setEditable(editable);
// NOTE: Typical of Swing, the following does not set
// the background color. So we have to specify a
// custom editor. #$(#&$#(@#!!
// combobox.setBackground(background);
combobox.setEditor(new BasicComboBoxEditor() {
public Component getEditorComponent() {
Component result = super.getEditorComponent();
result.setBackground(background);
result.setForeground(foreground);
return result;
}
});
combobox.setSelectedItem(defaultChoice);
_addPair(name, lbl, combobox, combobox);
// Add the listener last so that there is no notification
// of the first value.
combobox.addItemListener(new QueryItemListener(name));
}
项目:rapidminer-studio
文件:ParameterTupelCellEditor.java
private void constructPanel(String[] values) {
// constructing editors
editors = new PropertyValueCellEditor[types.length];
for (int i = 0; i < types.length; i++) {
editors[i] = PropertyPanel.instantiateValueCellEditor(types[i], operator);
}
// building panel
panel = new JPanel();
panel.setFocusable(true);
panel.setLayout(new GridLayout(1, editors.length));
for (int i = 0; i < types.length; i++) {
Component editorComponent = editors[i].getTableCellEditorComponent(null, values[i], false, 0, 0);
if (editorComponent instanceof JComboBox) {
if (((JComboBox<?>) editorComponent).isEditable()) {
ComboBoxEditor editor = ((JComboBox<?>) editorComponent).getEditor();
if (editor instanceof BasicComboBoxEditor) {
editor.getEditorComponent().addFocusListener(focusListener);
}
} else {
editorComponent.addFocusListener(focusListener);
}
} else if (editorComponent instanceof JPanel) {
JPanel editorPanel = (JPanel) editorComponent;
Component[] components = editorPanel.getComponents();
for (Component comp : components) {
comp.addFocusListener(focusListener);
}
} else {
editorComponent.addFocusListener(focusListener);
}
panel.add(editorComponent);
panel.addFocusListener(focusListener);
}
}
项目:binnavi
文件:CGotoAddressField.java
/**
* Creates a new Goto Address field.
*
* @param graph The graph the address field refers to.
* @param modules The list of modules present in the graph
* @param parent The parent JFrame
*/
public CGotoAddressField(final ZyGraph graph, final List<INaviModule> modules, final JFrame parent) {
super(20);
m_graph = Preconditions.checkNotNull(graph, "IE01811: Graph argument can't be null");
m_modules = Preconditions.checkNotNull(modules, "IE01176: Modules argument can not be null");
m_parent = Preconditions.checkNotNull(parent, "IE02845: parent argument can not be null");
// Code to fix some kind of combo box GUI issue with formatted text fields
m_textField.setPreferredSize(getPreferredSize());
m_textField.setBorder(((JTextField) new JComboBox().getEditor().getEditorComponent())
.getBorder());
setEditor(new BasicComboBoxEditor() {
@Override
protected JTextField createEditorComponent() {
return m_textField;
}
});
((JTextField) getEditor().getEditorComponent()).getInputMap().put(
HotKeys.GRAPH_SEARCH_NEXT_KEY.getKeyStroke(), "ZOOM");
((JTextField) getEditor().getEditorComponent()).getActionMap().put("ZOOM",
new AbstractAction() {
private static final long serialVersionUID = 4721578747969744911L;
@Override
public void actionPerformed(final ActionEvent event) {
if (m_modules.size() == 1) {
zoomToAddress();
} else {
buildAddressSelectionPopUp();
}
}
});
addActionListener(m_listener);
}
项目:beautyeye
文件:BEComboBoxUI.java
/**
* Creates the default editor that will be used in editable combo boxes.
* A default editor will be used only if an editor has not been
* explicitly set with <code>setEditor</code>.
*
* @return a <code>ComboBoxEditor</code> used for the combo box
* @see javax.swing.JComboBox#setEditor
*/
protected ComboBoxEditor createEditor()
{
BasicComboBoxEditor.UIResource bcbe = new BasicComboBoxEditor.UIResource();
if(bcbe != null)
{
Component c = bcbe.getEditorComponent();
if(c != null)
{
//把默认的Editor设置成透明(editor不透明的话就会遮住NP背景图,从而使得外观难看)
((JComponent)c).setOpaque(false);
//* 以下这段是为了给默认Editor加上border而加(没有它个border将使
//* 得与不可编辑comboBox的内容组件看起来有差异哦),
//* 在WindowsComboBoxUI中,这段代码是放在WindowsComboBoxEditor
//* 中的方法createEditorComponent中实现,由于该 方法是1.6里才有的,
//* BE LNF因要兼容java1.5,所以不作类似实现就在本方法中实现也没有问题。
//* 类似实现请参考WindowsComboBoxUI.WindowsComboBoxEditor类
// JTextField editor = (JTextField)c;
Border border = (Border)UIManager.get("ComboBox.editorBorder");
if (border != null)
{
((JComponent)c).setBorder(border);
}
}
}
return bcbe;
}
项目:HearthAttack
文件:Query.java
/** Create a choice menu.
* @param name The name used to identify the entry (when calling get).
* @param label The label to attach to the entry.
* @param values The list of possible choices.
* @param defaultChoice Default choice.
* @param editable True if an arbitrary choice can be entered, in addition
* to the choices in values.
* @param background The background color for the editable part.
* @param foreground The foreground color for the editable part.
* @return The combo box for the choice.
*/
public JComboBox<Object> addChoice(String name, String label, Object[] values,
Object defaultChoice, boolean editable, final Color background,
final Color foreground) {
JLabel lbl = new JLabel(label + ": ");
lbl.setBackground(_background);
JComboBox<Object> combobox = new JComboBox<Object>(values);
combobox.setEditable(editable);
// NOTE: Typical of Swing, the following does not set
// the background color. So we have to specify a
// custom editor. #$(#&$#(@#!!
// combobox.setBackground(background);
combobox.setEditor(new BasicComboBoxEditor() {
@Override
public Component getEditorComponent() {
Component result = super.getEditorComponent();
result.setBackground(background);
result.setForeground(foreground);
return result;
}
});
combobox.setSelectedItem(defaultChoice);
_addPair(name, lbl, combobox, combobox);
// Add the listener last so that there is no notification
// of the first value.
combobox.addItemListener(new QueryItemListener(this, name));
return combobox;
}
项目:concurrent
文件:BEComboBoxUI.java
/**
* Creates the default editor that will be used in editable combo boxes.
* A default editor will be used only if an editor has not been
* explicitly set with <code>setEditor</code>.
*
* @return a <code>ComboBoxEditor</code> used for the combo box
* @see javax.swing.JComboBox#setEditor
*/
protected ComboBoxEditor createEditor()
{
BasicComboBoxEditor.UIResource bcbe = new BasicComboBoxEditor.UIResource();
if(bcbe != null)
{
Component c = bcbe.getEditorComponent();
if(c != null)
{
//把默认的Editor设置成透明(editor不透明的话就会遮住NP背景图,从而使得外观难看)
((JComponent)c).setOpaque(false);
//* 以下这段是为了给默认Editor加上border而加(没有它个border将使
//* 得与不可编辑comboBox的内容组件看起来有差异哦),
//* 在WindowsComboBoxUI中,这段代码是放在WindowsComboBoxEditor
//* 中的方法createEditorComponent中实现,由于该 方法是1.6里才有的,
//* BE LNF因要兼容java1.5,所以不作类似实现就在本方法中实现也没有问题。
//* 类似实现请参考WindowsComboBoxUI.WindowsComboBoxEditor类
// JTextField editor = (JTextField)c;
Border border = (Border)UIManager.get("ComboBox.editorBorder");
if (border != null)
{
((JComponent)c).setBorder(border);
}
}
}
return bcbe;
}
项目:cn1
文件:JComboBoxTest.java
public void testGetSetEditor() throws Exception {
assertNotNull(comboBox.getEditor());
ComboBoxEditor newEditor = new BasicComboBoxEditor();
comboBox.setEditor(newEditor);
assertEquals(newEditor, comboBox.getEditor());
assertTrue(propertyChangeController.isChanged("editor"));
comboBox.setEditor(null);
assertNull(comboBox.getEditor());
}
项目:HearthSim
文件:Query.java
/** Create a choice menu.
* @param name The name used to identify the entry (when calling get).
* @param label The label to attach to the entry.
* @param values The list of possible choices.
* @param defaultChoice Default choice.
* @param editable True if an arbitrary choice can be entered, in addition
* to the choices in values.
* @param background The background color for the editable part.
* @param foreground The foreground color for the editable part.
* @return The combo box for the choice.
*/
public JComboBox<Object> addChoice(String name, String label, Object[] values,
Object defaultChoice, boolean editable, final Color background,
final Color foreground) {
JLabel lbl = new JLabel(label + ": ");
lbl.setBackground(_background);
JComboBox<Object> combobox = new JComboBox<Object>(values);
combobox.setEditable(editable);
// NOTE: Typical of Swing, the following does not set
// the background color. So we have to specify a
// custom editor. #$(#&$#(@#!!
// combobox.setBackground(background);
combobox.setEditor(new BasicComboBoxEditor() {
@Override
public Component getEditorComponent() {
Component result = super.getEditorComponent();
result.setBackground(background);
result.setForeground(foreground);
return result;
}
});
combobox.setSelectedItem(defaultChoice);
_addPair(name, lbl, combobox, combobox);
// Add the listener last so that there is no notification
// of the first value.
combobox.addItemListener(new QueryItemListener(this, name));
return combobox;
}
项目:freeVM
文件:JComboBoxTest.java
public void testGetSetEditor() throws Exception {
assertNotNull(comboBox.getEditor());
ComboBoxEditor newEditor = new BasicComboBoxEditor();
comboBox.setEditor(newEditor);
assertEquals(newEditor, comboBox.getEditor());
assertTrue(propertyChangeController.isChanged("editor"));
comboBox.setEditor(null);
assertNull(comboBox.getEditor());
}
项目:freeVM
文件:JComboBoxTest.java
public void testGetSetEditor() throws Exception {
assertNotNull(comboBox.getEditor());
ComboBoxEditor newEditor = new BasicComboBoxEditor();
comboBox.setEditor(newEditor);
assertEquals(newEditor, comboBox.getEditor());
assertTrue(propertyChangeController.isChanged("editor"));
comboBox.setEditor(null);
assertNull(comboBox.getEditor());
}
项目:rapidminer-5
文件:ParameterTupelCellEditor.java
private void constructPanel(String[] values) {
// constructing editors
editors = new PropertyValueCellEditor[types.length];
for (int i = 0; i < types.length; i++) {
editors[i] = PropertyPanel.instantiateValueCellEditor(types[i], operator);
}
// building panel
panel = new JPanel();
panel.setFocusable(true);
panel.setLayout(new GridLayout(1, editors.length));
for (int i = 0; i < types.length; i++) {
Component editorComponent = editors[i].getTableCellEditorComponent(null, values[i], false, 0, 0);
if (editorComponent instanceof JComboBox && ((JComboBox) editorComponent).isEditable()) {
if ( ((JComboBox) editorComponent).isEditable() ) {
ComboBoxEditor editor = ((JComboBox) editorComponent).getEditor();
if (editor instanceof BasicComboBoxEditor) {
editor.getEditorComponent().addFocusListener(focusListener);
}
} else {
editorComponent.addFocusListener(focusListener);
}
} else if (editorComponent instanceof JPanel) {
JPanel editorPanel = (JPanel) editorComponent;
Component[] components = editorPanel.getComponents();
for (Component comp : components) {
comp.addFocusListener(focusListener);
}
} else {
editorComponent.addFocusListener(focusListener);
}
panel.add(editorComponent);
panel.addFocusListener(focusListener);
}
}
项目:consulo-java
文件:TargetOptionsComponent.java
public static ComboBox createTargetOptionsCombo()
{
final ComboBox combo = new ComboBox(new TargetLevelComboboxModel());
//combo.setRenderer(new DefaultListCellRenderer() {
// @Override
// public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
// try {
// return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
// }
// finally {
// //if ("".equals(value)) {
// // setText(COMPILER_DEFAULT);
// //}
// }
// }
//});
combo.setEditable(true);
combo.setEditor(new BasicComboBoxEditor()
{
@Override
protected JTextField createEditorComponent()
{
return new HintTextField(COMPILER_DEFAULT, 10);
}
});
return combo;
}
项目:java-swing-tips
文件:MainPanel.java
private MainPanel() {
super(new BorderLayout());
String[] model = {"123456", "7890"};
JComboBox<String> combo = new JComboBox<>(model);
combo.setEditable(true);
JComboBox<String> comboBox = new JComboBox<String>(model) {
private static final int MAX_HISTORY = 10;
private static final String ENTER_PRESSED = "enterPressed";
@Override public void updateUI() {
getActionMap().put(ENTER_PRESSED, null);
super.updateUI();
JComboBox<String> cb = this;
Action defaultEnterPressedAction = getActionMap().get(ENTER_PRESSED);
getActionMap().put(ENTER_PRESSED, new AbstractAction() {
@Override public void actionPerformed(ActionEvent e) {
boolean isPopupVisible = isPopupVisible();
setPopupVisible(false);
DefaultComboBoxModel<String> m = (DefaultComboBoxModel<String>) getModel();
String str = Objects.toString(getEditor().getItem(), "");
if (m.getIndexOf(str) < 0 && getInputVerifier().verify(cb)) {
m.removeElement(str);
m.insertElementAt(str, 0);
if (m.getSize() > MAX_HISTORY) {
m.removeElementAt(MAX_HISTORY);
}
setSelectedIndex(0);
setPopupVisible(isPopupVisible);
} else {
defaultEnterPressedAction.actionPerformed(e);
}
}
});
}
};
comboBox.setEditable(true);
comboBox.setInputVerifier(new LengthInputVerifier());
comboBox.setEditor(new BasicComboBoxEditor() {
private Component editorComponent;
// // @see javax/swing/plaf/synth/SynthComboBoxUI.java
// @Override public JTextField createEditorComponent() {
// JTextField f = new JTextField("", 9);
// f.setName("ComboBox.textField");
// return f;
// }
@Override public Component getEditorComponent() {
// if (Objects.isNull(editorComponent)) {
// JTextComponent tc = (JTextComponent) super.getEditorComponent();
// editorComponent = new JLayer<>(tc, new ValidationLayerUI<>());
// }
editorComponent = Optional.ofNullable(editorComponent).orElseGet(() -> new JLayer<>((JTextComponent) super.getEditorComponent(), new ValidationLayerUI<>()));
return editorComponent;
}
});
comboBox.addPopupMenuListener(new SelectItemMenuListener());
JPanel p = new JPanel(new GridLayout(5, 1));
p.add(new JLabel("Default:", SwingConstants.LEFT));
p.add(combo);
p.add(Box.createVerticalStrut(15));
p.add(new JLabel("6 >= str.length()", SwingConstants.LEFT));
p.add(comboBox);
add(p, BorderLayout.NORTH);
setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
setPreferredSize(new Dimension(320, 240));
}