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);
}
}