类javax.swing.plaf.basic.BasicComboBoxUI源码实例Demo

下面列出了怎么用javax.swing.plaf.basic.BasicComboBoxUI的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: swing-material   文件: MaterialComboBox.java
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);
}
 
源代码2 项目: FlatLaf   文件: FlatComboBoxUI.java
@Override
protected LayoutManager createLayoutManager() {
	return new BasicComboBoxUI.ComboBoxLayoutManager() {
		@Override
		public void layoutContainer( Container parent ) {
			super.layoutContainer( parent );

			if ( editor != null && padding != null ) {
				// fix editor bounds by subtracting padding
				editor.setBounds( FlatUIUtils.subtractInsets( editor.getBounds(), padding ) );
			}
		}
	};
}
 
源代码3 项目: FlatLaf   文件: FlatComboBoxUI.java
@Override
protected PropertyChangeListener createPropertyChangeListener() {
	return new BasicComboBoxUI.PropertyChangeHandler() {
		@Override
		public void propertyChange( PropertyChangeEvent e ) {
			super.propertyChange( e );

			Object source = e.getSource();
			String propertyName = e.getPropertyName();

			if( editor != null &&
				((source == comboBox && propertyName == "foreground") ||
				 (source == editor && propertyName == "enabled")) )
			{
				// fix editor component colors
				updateEditorColors();
			} else if( editor != null && source == comboBox && propertyName == "componentOrientation" ) {
				ComponentOrientation o = (ComponentOrientation) e.getNewValue();
				editor.applyComponentOrientation( o );
			} else if( editor != null && FlatClientProperties.PLACEHOLDER_TEXT.equals( propertyName ) )
				editor.repaint();
			else if( FlatClientProperties.COMPONENT_ROUND_RECT.equals( propertyName ) )
				comboBox.repaint();
			else if( FlatClientProperties.MINIMUM_WIDTH.equals( propertyName ) )
				comboBox.revalidate();
		}
	};
}
 
源代码4 项目: java-swing-tips   文件: MainPanel.java
private static <E> JComboBox<E> makeComboBox(ComboBoxModel<E> model) {
  return new JComboBox<E>(model) {
    @Override public void updateUI() {
      super.updateUI();
      setBorder(BorderFactory.createEmptyBorder());
      setUI(new BasicComboBoxUI() {
        @Override protected JButton createArrowButton() {
          JButton button = super.createArrowButton();
          button.setContentAreaFilled(false);
          button.setBorder(BorderFactory.createEmptyBorder());
          return button;
        }
      });
      // JTextField editor = (JTextField) getEditor().getEditorComponent();
      // editor.setBorder(BorderFactory.createEmptyBorder());
      // editor.setOpaque(true);
      // editor.setEditable(false);
    }
  };
  // combo.setBorder(BorderFactory.createEmptyBorder());
  // ((JTextField) combo.getEditor().getEditorComponent()).setBorder(null);
  // ((JTextField) combo.getEditor().getEditorComponent()).setMargin(null);
  // combo.setBackground(Color.WHITE);
  // combo.setOpaque(true);
  // combo.setEditable(true);
  // return combo;
}
 
源代码5 项目: java-swing-tips   文件: MainPanel.java
private static Component makePanel() {
  JPanel p = new JPanel(new BorderLayout(5, 5));
  p.add(new JComboBox<>(new String[] {"1111", "2222222", "3333333"}));

  String[] items = {"JComboBox 11111:", "JComboBox 222:", "JComboBox 33:"};
  JComboBox<String> comboBox = new JComboBox<String>(items) {
    @Override public void updateUI() {
      super.updateUI();
      UIManager.put("ComboBox.squareButton", Boolean.FALSE);
      UIManager.put("ComboBox.background", p.getBackground());
      setUI(new BasicComboBoxUI() {
        @Override protected JButton createArrowButton() {
          JButton button = new JButton(); // .createArrowButton();
          button.setBorder(BorderFactory.createEmptyBorder());
          button.setVisible(false);
          return button;
        }
      });
      ListCellRenderer<? super String> r = getRenderer();
      setRenderer((list, value, index, isSelected, cellHasFocus) -> {
        JLabel c = (JLabel) r.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
        c.setHorizontalAlignment(SwingConstants.RIGHT);
        if (isSelected) {
          c.setForeground(list.getSelectionForeground());
          c.setBackground(list.getSelectionBackground());
        } else {
          c.setForeground(list.getForeground());
          c.setBackground(list.getBackground());
        }
        return c;
      });
      setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 2));
      setOpaque(false);
      setFocusable(false);
    }
  };
  p.add(comboBox, BorderLayout.WEST);
  p.setBorder(BorderFactory.createTitledBorder("JComboBox + JComboBox"));
  return p;
}
 
源代码6 项目: java-swing-tips   文件: MainPanel.java
private static <E> JComboBox<E> makeComboBox(ComboBoxModel<E> model) {
  return new JComboBox<E>(model) {
    @Override public void updateUI() {
      super.updateUI();
      setBorder(BorderFactory.createEmptyBorder());
      setUI(new BasicComboBoxUI() {
        @Override protected JButton createArrowButton() {
          JButton button = super.createArrowButton();
          button.setContentAreaFilled(false);
          button.setBorder(BorderFactory.createEmptyBorder());
          return button;
        }
      });
      // JTextField editor = (JTextField) getEditor().getEditorComponent();
      // editor.setBorder(BorderFactory.createEmptyBorder());
      // editor.setOpaque(true);
      // editor.setEditable(false);
    }
  };
  // combo.setBorder(BorderFactory.createEmptyBorder());
  // ((JTextField) combo.getEditor().getEditorComponent()).setBorder(null);
  // ((JTextField) combo.getEditor().getEditorComponent()).setMargin(null);
  // combo.setBackground(Color.WHITE);
  // combo.setOpaque(true);
  // combo.setEditable(true);
  // return combo;
}
 
源代码7 项目: java-swing-tips   文件: MainPanel.java
private MainPanel() {
  super(new BorderLayout());
  // Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
  //   @Override public void eventDispatched(AWTEvent event) {
  //     if (event instanceof MouseWheelEvent) {
  //       Object source = event.getSource();
  //       if (source instanceof JScrollPane) {
  //         System.out.println("JScrollPane");
  //         return;
  //       }
  //       ((MouseWheelEvent) event).consume();
  //     }
  //   }
  // }, AWTEvent.MOUSE_WHEEL_EVENT_MASK);

  JComboBox<String> combo1 = makeComboBox(5);
  if (combo1.getUI() instanceof WindowsComboBoxUI) {
    combo1.setUI(new WindowsComboBoxUI() {
      @Override protected ComboPopup createPopup() {
        return new BasicComboPopup2(comboBox);
      }
    });
  } else {
    combo1.setUI(new BasicComboBoxUI() {
      @Override protected ComboPopup createPopup() {
        return new BasicComboPopup2(comboBox);
      }
    });
  }

  JComboBox<String> combo2 = makeComboBox(20);
  if (combo2.getUI() instanceof WindowsComboBoxUI) {
    combo2.setUI(new WindowsComboBoxUI() {
      @Override protected ComboPopup createPopup() {
        return new BasicComboPopup3(comboBox);
      }
    });
  } else {
    combo2.setUI(new BasicComboBoxUI() {
      @Override protected ComboPopup createPopup() {
        return new BasicComboPopup3(comboBox);
      }
    });
  }

  Box box = Box.createVerticalBox();
  box.add(makeTitledPanel("default:", makeComboBox(5)));
  box.add(Box.createVerticalStrut(5));
  box.add(makeTitledPanel("default:", makeComboBox(20)));
  box.add(Box.createVerticalStrut(5));
  box.add(makeTitledPanel("disable right click in drop-down list:", combo1));
  box.add(Box.createVerticalStrut(5));
  box.add(makeTitledPanel("disable right click and scroll in drop-down list:", combo2));
  box.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  add(box, BorderLayout.NORTH);
  setPreferredSize(new Dimension(320, 240));
}
 
源代码8 项目: java-swing-tips   文件: MainPanel.java
private MainPanel() {
  super(new BorderLayout(15, 15));

  UIManager.put("ScrollBar.width", 10);
  UIManager.put("ScrollBar.thumbHeight", 20); // GTKLookAndFeel, SynthLookAndFeel, NimbusLookAndFeel
  UIManager.put("ScrollBar.minimumThumbSize", new Dimension(30, 30));
  UIManager.put("ScrollBar.incrementButtonGap", 0);
  UIManager.put("ScrollBar.decrementButtonGap", 0);
  UIManager.put("ScrollBar.thumb", THUMB);
  UIManager.put("ScrollBar.track", BACKGROUND);

  UIManager.put("ComboBox.foreground", FOREGROUND);
  UIManager.put("ComboBox.background", BACKGROUND);
  UIManager.put("ComboBox.selectionForeground", SELECTION_FOREGROUND);
  UIManager.put("ComboBox.selectionBackground", BACKGROUND);
  UIManager.put("ComboBox.buttonDarkShadow", BACKGROUND);
  UIManager.put("ComboBox.buttonBackground", FOREGROUND);
  UIManager.put("ComboBox.buttonHighlight", FOREGROUND);
  UIManager.put("ComboBox.buttonShadow", FOREGROUND);

  JComboBox<String> combo = new JComboBox<String>(makeModel()) {
    private transient MouseListener handler;
    private transient PopupMenuListener listener;
    @Override public void updateUI() {
      removeMouseListener(handler);
      removePopupMenuListener(listener);
      UIManager.put(KEY, new TopRoundedCornerBorder());
      super.updateUI();
      setUI(new BasicComboBoxUI() {
        @Override protected JButton createArrowButton() {
          JButton b = new JButton(new ArrowIcon(BACKGROUND, FOREGROUND));
          b.setContentAreaFilled(false);
          b.setFocusPainted(false);
          b.setBorder(BorderFactory.createEmptyBorder());
          return b;
        }

        @Override protected ComboPopup createPopup() {
          return new BasicComboPopup(comboBox) {
            @Override protected JScrollPane createScroller() {
              JScrollPane sp = new JScrollPane(list) {
                @Override public void updateUI() {
                  super.updateUI();
                  getVerticalScrollBar().setUI(new WithoutArrowButtonScrollBarUI());
                  getHorizontalScrollBar().setUI(new WithoutArrowButtonScrollBarUI());
                }
              };
              sp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
              sp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
              sp.setHorizontalScrollBar(null);
              return sp;
            }
          };
        }
      });
      handler = new ComboRolloverHandler();
      addMouseListener(handler);
      listener = new HeavyWeightContainerListener();
      addPopupMenuListener(listener);
      Object o = getAccessibleContext().getAccessibleChild(0);
      if (o instanceof JComponent) {
        JComponent c = (JComponent) o;
        c.setBorder(new BottomRoundedCornerBorder());
        c.setForeground(FOREGROUND);
        c.setBackground(BACKGROUND);
      }
    }
  };

  JPanel p = new JPanel(new GridLayout(0, 1, 15, 15));
  p.setOpaque(true);
  p.add(combo);

  JTree tree = new JTree();
  int row = 0;
  while (row < tree.getRowCount()) {
    tree.expandRow(row);
    row++;
  }

  JScrollPane scroll = new JScrollPane(tree) {
    @Override public void updateUI() {
      super.updateUI();
      getVerticalScrollBar().setUI(new WithoutArrowButtonScrollBarUI());
      getHorizontalScrollBar().setUI(new WithoutArrowButtonScrollBarUI());
    }
  };
  scroll.setBackground(tree.getBackground());
  scroll.setBorder(new RoundedCornerBorder());

  setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));
  add(scroll);
  add(p, BorderLayout.NORTH);
  setOpaque(true);
  setPreferredSize(new Dimension(320, 240));
}
 
源代码9 项目: consulo   文件: ComboBoxButtonImpl.java
public HackyComboBoxUI(ComboBoxUI ui, ComboBoxButtonImpl button) {
  myButton = button;
  myDelegateUI = (BasicComboBoxUI)ui;
}
 
 类所在包
 类方法
 同包方法