一起学习
....这是一个用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语言编写的取色器
阅读(286) | 评论(0) | 转发(0) |