2001年6月23日(新規作成)
  関谷トップページへ CG2001 トップページへ   戻る(Java7章ページへ)  

GraphicsE18a.java Javaフィル(RGBスクロールバーによる色のツール)

// GraphicsE18a.java  Javaフィル(RGBスクロールバーによる色のツール)
// 2001.6.18 Applet プログラムへの変換 KPC sekiya
import java.awt.*;
import java.awt.event.*;
import java.applet.*;							// Applet 

//public class GraphicsE18a extends Frame implements AdjustmentListener{  Scrollbar sR, sG, sB;
public class GraphicsE18a extends Applet implements AdjustmentListener{  Scrollbar sR, sG, sB;
   TextField tfR, tfG,tfB;
/*  public static void main() { 	// to html ファイルで指定
    f.setTitle("Javaフィル(RGBカラーバーによるボタン色の最適ツール)");
    f.setSize(640,400);
    f.setBackground(Color.lightGray);	// to init()
    f.setVisible(true);
  }
*/
  //GraphicsE18(){ 	// クラス名()のコンストラクターをAppletのinit()メソッドにオーバライドする。
 public void init() {						// for Applet only 初期化
		
   setBackground(Color.lightGray);		// form main()
   setLayout(null);
    setFont(new Font("Serif",Font.BOLD,15));
    tfR=new TextField("0");
    tfG=new TextField("0");
    tfB=new TextField("0");
    tfR.setBackground(Color.white);
    tfG.setBackground(Color.white);
    tfB.setBackground(Color.white);
    tfR.setBounds(490,360,40,20);
    tfG.setBounds(540,360,40,20);
    tfB.setBounds(590,360,40,20);
    sR=new Scrollbar(Scrollbar.VERTICAL,0,10,0,265);
    sG=new Scrollbar(Scrollbar.VERTICAL,0,10,0,265);
    sB=new Scrollbar(Scrollbar.VERTICAL,0,10,0,265);
    sR.setBackground(Color.red);
    sG.setBackground(Color.green);
    sB.setBackground(Color.blue);
    sR.setBounds(500,70,20,280);
    sG.setBounds(550,70,20,280);
    sB.setBounds(600,70,20,280);
    sR.addAdjustmentListener(this);
    sG.addAdjustmentListener(this);
    sB.addAdjustmentListener(this);
    add(tfR);    add(tfG);    add(tfB);
    add(sR);    add(sG);    add(sB);
//    addWindowListener(new WinAdapter()); 	// Appletでは不要
   }
 // class WinAdapter extends WindowAdapter {		// Appletでは不要

  //  public void windowClosing(WindowEvent we) {	System.exit(0); }
 // }
  public void adjustmentValueChanged(AdjustmentEvent ae){
    if(ae.getAdjustable()==sR || ae.getAdjustable()==sG || ae.getAdjustable()==sB)
    repaint();
  }
  public void paint(Graphics g) {
	
  	 	g.drawString("中山茂、Java2グラフィックスプログラミング入門、技報堂出版、1999、pp.151-153)",20,40);
 		g.drawString("RGBカラーバー of Applet by 関谷", 20, 60);

    cframe(g,50,150,200,300,5,true,new Color(sR.getValue(),sG.getValue(),sB.getValue()));
    cframe(g,250,150,400,300,5,false,new Color(sR.getValue(),sG.getValue(),sB.getValue()));
  }
  public void update(Graphics g) {
    tfR.setText(" "+sR.getValue());
    tfG.setText(" "+sG.getValue());
    tfB.setText(" "+sB.getValue());
    cframe(g,50,150,200,300,5,true,new Color(sR.getValue(),sG.getValue(),sB.getValue()));
    cframe(g,250,150,400,300,5,false,new Color(sR.getValue(),sG.getValue(),sB.getValue()));
  }
  void cframe(Graphics g,int x1, int y1, int x2, int y2, int d, boolean b, Color c) {
    Polygon f1=new Polygon(),f2=new Polygon(),f3=new Polygon(),f4=new Polygon(),fm=new Polygon();
    Color c4,c1,c2,c3,cm,wh=Color.white, dg=Color.darkGray, lg=Color.lightGray, bl=Color.black;
    if(b){ c1=c.brighter();c2=c.darker();c3=c.darker();c4=c.brighter();cm=c; }
    else { c1=c.darker();c2=c.brighter();c3=c.brighter();c4=c.darker();cm=c; }
    f1.addPoint(x1,y1);	f1.addPoint(x2,y1);
    f1.addPoint(x2-d,y1+d);	f1.addPoint(x1+d,y1+d);
    f2.addPoint(x2,y1);	f2.addPoint(x2,y2);
    f2.addPoint(x2-d,y2-d); f2.addPoint(x2-d,y1+d);
    f3.addPoint(x2,y2);	f3.addPoint(x1,y2);
    f3.addPoint(x1+d,y2-d);	f3.addPoint(x2-d,y2-d);
    f4.addPoint(x1,y2);	f4.addPoint(x1,y1);
    f4.addPoint(x1+d,y1+d); f4.addPoint(x1+d,y2-d);
    fm.addPoint(x1+d,y1+d);	fm.addPoint(x2-d,y1+d);
    fm.addPoint(x2-d,y2-d);	fm.addPoint(x1+d,y2-d);
    g.setColor(c1);    g.fillPolygon(f1);
    g.setColor(c2);    g.fillPolygon(f2);
    g.setColor(c3);    g.fillPolygon(f3);
    g.setColor(c4);    g.fillPolygon(f4);
    g.setColor(cm);    g.fillPolygon(fm);
  }
}