用JAVA语言编写的取色器

<script type="text/javascript"> google_ad_client = "pub-8800625213955058"; /* 336x280, 创建于 07-11-21 */ google_ad_slot = "0989131976"; google_ad_width = 336; google_ad_height = 280; // </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> ....这是一个用JAVA语言编写的取色器.在WIN98下用VJ 调试通过.它利用JAVA语言的特点,增加了一般的取色器没有的功能:动态显示和确定所设对象的颜色.直观而方便.取色器可在具体应用程序中分别设置两种不同的使用方式. (一)方式1:同一般的取色器(如Windows9X的取色器)用法相同. 1.点击"确定键"后,返回所取颜色,取色器关闭. 2.点击"取消键"后,返回空值,取色器关闭. 3.点击"关闭键"后,返回空值,取色器关闭. 4.选取"色框"项后,显示基本颜色框. 基本颜色框的最下 面两行由用户自定义颜色. 用鼠标右键点击它, 即可将当前所取颜 色设置给它. 5.取消"色框"项后,隐藏基本颜色框. (二)方式2:增加了动态显示和设置的功能. 1.只有在点击"关闭键"后,取色器才关闭. 2.在不关闭取色器的情况下,可先后对多个对象进行颜色设置. 3.选取"动态"项后,可动态显示和确定所设对象的颜色. 4.取消"动态"项后,按"确定键"才设置和显示所设对象的颜色. 5.点击"取消键"后,返回并恢复所设对象原有的颜色. 在名为“颜色设置”的使用例程中,点击“方式1 键”打开取色器。 另两个“方式2 键”和四个颜色块用鼠标右键点击它,打开取色器.当取色器 已经打开时,用鼠标左键点击它为选中. 以下是使用例程的源程序. 若有对全部源程序感兴趣者请来信洽谈. 李先利 lxlsoft@263.net




//=====JAVA取色器 ColorDialog 使用例程的源程序=======



import java.awt.*; 

import java.awt.event.*; 

import java.applet.* ; 



class SetObjectColor extends Applet

{



/* 

public static void main(String args[])

{ 



new ColorObjectFrame();



}

*/





public void init()

{



new ColorObjectFrame();



}



}



class ColorObjectFrame extends Frame implements ActionListener, MouseListener 

{



Button btnColor1=new Button(" 方式 1 ") ,

btnColor2=new Button(" 方式 2 "),

btnColor3=new Button(" 方式 2 ");

Label labColor =new Label (" 方式 2 ");

Canvas cavColor1=new Canvas( ),

cavColor2=new Canvas( ),

cavColor3=new Canvas( ),

cavColor4=new Canvas( );

Graphics offGraphics ;

ColorDialog ClrDilg1,ClrDilg2;



ColorObjectFrame()

{



move(300,150);

setTitle("颜色设置 方式2按右键弹出");

setName("ColorObjectFrame");

setSize(250,280);

setResizable(false);

setBackground(Color.gray.brighter());

setFont(new Font( "",Font.PLAIN ,18));



setLayout(new BorderLayout());

Panel p1=new Panel();

Panel p2=new Panel();

add("Center",p1);

add("South",p2);



p1.setLayout(new FlowLayout());

p1.add( btnColor1);

p1.add( btnColor2);

p1.add( btnColor3);

p1.add( labColor);

p2.setLayout(new GridLayout (2,2)); 

cavColor1.setSize(1,40);

p2.add( cavColor1); cavColor1.setBackground(Color.red); 

p2.add( cavColor2);cavColor2.setBackground(Color.yellow);

p2.add( cavColor3);cavColor3.setBackground(Color.blue);

p2.add( cavColor4);cavColor4.setBackground(Color.green);



btnColor1.addActionListener(this);

//btnColor2.addActionListener(this);



btnColor2.addMouseListener(this);

btnColor3.addMouseListener(this);

cavColor1.addMouseListener(this);

cavColor2.addMouseListener(this);

cavColor3.addMouseListener(this);

cavColor4.addMouseListener(this);



addWindowListener( new CloseWin());

show()



}



public void actionPerformed(ActionEvent e)

{



if(e.getSource()==btnColor1)

{

// 方式1:不需要注册颜色对象,同VB中Windows的取色器用法相同.

// 参数 boolean isMolde 必需取 true.



if(ClrDilg1==null)



ClrDilg1=new ColorDialog(this,"颜色1 ",true);



ClrDilg1.setColor(btnColor1.getBackground());

ClrDilg1.show();

if(ClrDilg1.getColor()!=null)

btnColor1.setBackground(ClrDilg1.getColor()); 



//setColor与方式1 相配;

//使用,则在取色板显示该颜色的数值;也可不使用.

//getColor()与方式1 相配;

}



}



public void mousePressed(MouseEvent e)

{ //"按下



Object obj;

obj=e.getSource();



if(e.getModifiers()==MouseEvent.BUTTON1_MASK )

{ //"按下左键"



//repaint();

if(ClrDilg2!=null && ClrDilg2.isShowing())

{



if(obj.toString().indexOf("Button")>=0 || obj.toString().indexOf("Canvas")>=0)

{



ClrDilg2.setResizable(true);

ClrDilg2.setObject(obj,false); 



//与方式2 相配.obj可以是具体的对象名如:cavColor1;

//true: 在取色板显示对象obj的原有颜色的数值;

//false: 不改变取色板中的原有取色.

}



}



}





if(e.getModifiers()==MouseEvent.BUTTON3_MASK)

{ // "按下右键"; 



if(obj.toString().indexOf("Button")>=0 ||

obj.toString().indexOf("Canvas")>=0)

{

// 方式2:需要注册颜色对象.参数 boolean isMolde 一般取 false 



if(ClrDilg2==null)



ClrDilg2=new ColorDialog(this,"颜色2 ",false);



ClrDilg2.setObject(obj,true);

ClrDilg2.show();



//与方式2 相配.obj可以是具体的对象名如:cavColor1;

//true: 在取色板显示对象obj的原有颜色的数值;

//false: 不改变取色板中的原有取色.

}



}



}

public void mouseReleased(MouseEvent e){ } //"放开" 

public void mouseEntered(MouseEvent e){ }//"进入";

public void mouseExited(MouseEvent e){ }//"退出";

public void mouseClicked(MouseEvent e){ }// if(e.getClickCount()==1) //"单击"



}





class CloseWin extends WindowAdapter 

{



public void windowClosing(WindowEvent e)

{



if(e.toString().indexOf("Dialog")>=0 )

{



Dialog frm=(Dialog)(e.getSource());

frm.dispose();



}



if(e.toString().indexOf("Frame")>=0 )

{



Frame frm=(Frame)(e.getSource());

frm.dispose();

if(frm.getName().equals("ColorObjectFrame") )

System.exit(0);



}



}

--------------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值