Comment

JScrollPaneに角丸表示をおこなうためのBorderを設定します。

Comment

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());
View in GitHub: Java, Kotlin

Comment

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() {
      // Swing/ComboBoxScrollBar.html に移動
    });
    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);
    }
  }
};

Comment

Comment