Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1501536
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 19:23:58

一起学习
....这是一个用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);



}



}

-------------------------------------------------------------------------------- 下载本文示例代码


用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器用JAVA语言编写的取色器
阅读(269) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~