Example #1
0
  /**
   * Size effecting decoration vs. initial config (in provider).
   *
   * <p>For comparison: JXList
   *
   * <p>Decoration: use highlighter - works correctly
   *
   * <p>Config in Provider (usually not recommended): - override getRendererComponent, works
   * correctly
   */
  public void interactiveBoldList() {
    final Locale[] locales = Locale.getAvailableLocales();
    ListModel model =
        new AbstractListModel() {

          public Object getElementAt(int index) {
            return locales[index];
          }

          public int getSize() {
            return locales.length;
          }
        };
    JXList tree = new JXList(model);
    tree.setCellRenderer(new DefaultListRenderer());
    final Font bold = tree.getFont().deriveFont(Font.BOLD, 20f);
    Highlighter hl =
        new AbstractHighlighter(HighlightPredicate.EVEN) {

          @Override
          protected Component doHighlight(Component component, ComponentAdapter adapter) {
            component.setFont(bold);
            return component;
          }
        };
    tree.addHighlighter(hl);
    JXList treeP = new JXList(model);
    WrappingProvider provider =
        new WrappingProvider() {

          @Override
          public WrappingIconPanel getRendererComponent(CellContext context) {
            super.getRendererComponent(context);
            if (context.getRow() % 2 == 0) {
              rendererComponent.setFont(bold);
            }
            return rendererComponent;
          }
        };
    treeP.setCellRenderer(new DefaultListRenderer(provider));
    showWithScrollingInFrame(tree, treeP, "bold font: decorate vs. config");
  }
Example #2
0
 /** share in list - okay. */
 public void interactiveUpdateUISharedProvider() {
   JXList list = new JXList(new DefaultComboBoxModel(new String[] {"one", "two", "three"}));
   list.setCellRenderer(new DefaultListRenderer(provider));
   showWithScrollingInFrame(list, "list with shared provider");
 }