Tips > ラベルの背景にグラデーションをつける

 

ラベルの背景にグラデーションをつける

CLabelでは、ラベルの背景にグラデーションの色をもたせることができます。
setBackgroundメソッドで背景色のグラデーションを指定します。下の例では、黒から青、そして白に変化していくグラデーションです。一番目の引数でポイントとなる色をColorクラスの配列で指定し、2番目の引数で色が変化する位置を1から100のint配列で設定します。

CLabel label = new CLabel(shell, SWT.LEFT);
label.setBackground(
   new Color[]{
     shell.getDisplay().getSystemColor(SWT.COLOR_BLACK),
     shell.getDisplay().getSystemColor(SWT.COLOR_BLUE),
     shell.getDipalay().getSystemColor(SWT.COLOR_WHITE)},
   new int[]{ 50, 100 });

サンプルプログラム

ソースコード (CLabelGrad.java)

import org.eclipse.swt.widgets.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.*;

public class CLabelGrad {

        public static void main(String[] args) {
                new CLabelGrad();
        }

        public CLabelGrad() {
                Display display = new Display();
                Shell shell = new Shell(display);
                shell.setText("CLabelTest");

                shell.setLayout(new GridLayout(1, false));

                //グラデーションのラベル1
                CLabel label1 = new CLabel(shell, SWT.LEFT);
                label1.setText("グラデーションのラベル1");
                label1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
                label1.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
                label1.setBackground(
                    new Color[] {
                       display.getSystemColor(SWT.COLOR_BLACK),
                       display.getSystemColor(SWT.COLOR_BLUE),
                       display.getSystemColor(SWT.COLOR_WHITE)},
                    new int[] { 50, 100 });

                //グラデーションのラベル2
                CLabel label2 = new CLabel(shell, SWT.LEFT);
                label2.setText("グラデーションのラベル2");
                label2.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
                label2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
                label2.setBackground(
                   new Color[] {
                      display.getSystemColor(SWT.COLOR_DARK_GREEN),
                      display.getSystemColor(SWT.COLOR_GREEN),
                      display.getSystemColor(SWT.COLOR_GRAY)},
                   new int[] { 50, 100 });

                //グラデーションのラベル3
                CLabel label3 = new CLabel(shell, SWT.LEFT | SWT.SHADOW_IN);
                label3.setText("グラデーションのラベル3 + SHADOW_IN");
                label3.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
                label3.setBackground(
                   new Color[] {
                      display.getSystemColor(SWT.COLOR_WHITE),
                      display.getSystemColor(SWT.COLOR_GRAY),
                      display.getSystemColor(SWT.COLOR_DARK_GRAY),
                      display.getSystemColor(SWT.COLOR_BLACK)},
                   new int[] { 33, 67, 100 });

                //グラデーションのラベル4
                CLabel label4 = new CLabel(shell, SWT.LEFT | SWT.SHADOW_OUT);
                label4.setText("グラデーションのラベル4 + SHADOW_OUT");
                label4.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
                label4.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
                label4.setBackground(
                    new Color[] {
                       display.getSystemColor(SWT.COLOR_DARK_RED),
                       display.getSystemColor(SWT.COLOR_RED),
                       display.getSystemColor(SWT.COLOR_WHITE),
                       display.getSystemColor(SWT.COLOR_WHITE)},
                    new int[] { 25, 50, 100 });

                shell.pack();
                shell.open();
                while (!shell.isDisposed()) {
                        if (!display.readAndDispatch()) {
                                display.sleep();
                        }
                }
                display.dispose();
        }
}


最新更新日: 2004年7月24日
 
関連リンク
Eclipse API ドキュメント
CLabel
SWT

- PR -

マイクロソフト お得な見積! まとめての購入ならオトクな方法で。ライセンスだから管理も簡単。

シマンテック 割引価格! オンライン販売だから低価格。いつでも簡単、見積・購入。

■原石のままでは、終わりたくない貴方へ!キャリアアップ転職を成功へとナビゲート

秋葉原・なんば・名古屋・札幌に店舗を構えるパソコンショップ!【ツクモ】


Copyright(C) 2003,2004 Jasmin Project. All Right Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送