// // HSBカラーとRGB // // 2001/ 3/16 宍戸 輝光 // import java.awt.*; import java.awt.event.*; import java.applet.*; public class chsb extends java.applet.Applet implements AdjustmentListener { Label lb[]=new Label[3]; Scrollbar sc[]=new Scrollbar[3]; Panel pl[]=new Panel[3]; TextField fr,fg,fb; Panel pnl,pnl2; public void start() { setLayout(new BorderLayout()); setBackground(Color.getHSBColor ((float)0.5,(float)0.5,(float)0.5)); pnl=new Panel(); pnl.setLayout(new GridLayout(1,3)); pnl.setBackground(new Color(192,192,192)); lb[0]=new Label("H:0.50"); lb[1]=new Label("S:0.50"); lb[2]=new Label("B:0.50"); for (int i=0;i<3;i++) { sc[i]=new Scrollbar (Scrollbar.HORIZONTAL,10,1,0,21); sc[i].addAdjustmentListener(this); pl[i]=new Panel(); pl[i].add(lb[i]); pl[i].add(sc[i]); pnl.add(pl[i]); } add("North",pnl); pnl2=new Panel(); pnl2.setBackground(new Color(192,192,192)); fr=new TextField(6); pnl2.add(fr); fg=new TextField(6); pnl2.add(fg); fb=new TextField(6); pnl2.add(fb); add("South",pnl2); } public void adjustmentValueChanged(AdjustmentEvent e) { float h,s,b; h=(float)sc[0].getValue()/20; s=(float)sc[1].getValue()/20; b=(float)sc[2].getValue()/20; lb[0].setText("H:"+String.valueOf(h)); lb[1].setText("S:"+String.valueOf(s)); lb[2].setText("B:"+String.valueOf(b)); setBackground(Color.getHSBColor(h,s,b)); int rgb=Color.HSBtoRGB(h,s,b); int rr=(rgb & 0x00ff0000) >> 16; int rg=(rgb & 0x0000ff00) >> 8; int rb=rgb & 0x000000ff; fr.setText("R:"+String.valueOf(rr)); fg.setText("G:"+String.valueOf(rg)); fb.setText("B:"+String.valueOf(rb)); } }