TITLE:Separatorのグラデーション

Separatorのグラデーション

編集者:Terai Atsuhiro
作成日:2004-03-29
更新日:2022-01-14 (金) 07:56:54

概要

グラデーションするセパレータを作ってみます。

#screenshot

サンプルコード

 class GradientSeparator extends JComponent{
   private final Color bgc = UIManager.getColor("Panel.background");
   private final Color ssc = UIManager.getColor("Separator.shadow");
   private final Color shc = UIManager.getColor("Separator.highlight");
   public GradientSeparator() {
     super();
     setPreferredSize(new Dimension(100, 2));
     setBorder(null);
   }
   protected void paintComponent(Graphics g) {
     super.paintComponent(g);
     Graphics2D g2 = (Graphics2D)g;
     int w = getWidth();
     g2.setPaint(new GradientPaint(0, 0, ssc, w, 0, bgc, true));
     g2.fillRect(0, 0, w, 1);
     g2.setPaint(new GradientPaint(0, 0, shc, w, 0, bgc, true));
     g2.fillRect(0, 1, w, 1);
   }
 }
  • &jnlp;
  • &jar;
  • &zip;

解説

上記のサンプルでは下のJSeparatorの描画にGradientPaintを使用し、グラデーションさせています。

JSeparatorにsetBorder()すると、セパレータが見えなくなる場合があるのですこし注意が必要です。

コメント