Java图像图形处理11 2.docx

上传人:b****0 文档编号:444770 上传时间:2022-10-10 格式:DOCX 页数:17 大小:23.33KB
下载 相关 举报
Java图像图形处理11 2.docx_第1页
第1页 / 共17页
Java图像图形处理11 2.docx_第2页
第2页 / 共17页
Java图像图形处理11 2.docx_第3页
第3页 / 共17页
Java图像图形处理11 2.docx_第4页
第4页 / 共17页
Java图像图形处理11 2.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Java图像图形处理11 2.docx

《Java图像图形处理11 2.docx》由会员分享,可在线阅读,更多相关《Java图像图形处理11 2.docx(17页珍藏版)》请在冰豆网上搜索。

Java图像图形处理11 2.docx

Java图像图形处理112

Java图像图形处理11.2

11.2绘制图形的颜色及其他

在上一节我们简要介绍了几何图形的绘制,本节主要讨论图形的颜色及绘制模式。

11.2.1颜色类(Color)

Java中颜色的设置采用与设备无关的方式,允许用户指定任何需要的颜色,java.awt.Color类定义了一系列常量用以指定常用的颜色,也可以通过Color类的构造方法生成所需要的颜色对象。

1.常用的构造方法

我们可以使用如下的构造方法构造颜色对象:

1)Color(intred,intgreen,intblue)使用红、绿、蓝三个整数表示混合后的颜色,red,grenn,blue取值范围在0~255之间。

如newColor(255,100,100)可表示亮红色。

2)Color(intrgbValue)采用红、绿、蓝构成的一个整数来表示颜色。

一般常写成16进制形式。

如0xffffff表示白色(最亮)。

3)Color(floatred,floatgreen,floatblue)使用三浮点数指定红、绿、蓝三个分量表示颜色。

取值范围在0.0~1.0之间。

2.类常量

Color类提供了一些常量来指定颜色,下表11.1列出了类常量及所表示的颜色。

表11.1颜色的类常量表常数

颜色

常数

颜色

 

black、BLACK

黑色

magenta、MAGENTA

洋红色

 

blue、BLUE

蓝色

orange、ORANGE

桔黄色

 

cyan、CYAN

青色

pink、PINK

粉红色

 

darkGray、DARK_GRAY

深灰色

red、RED

红色

 

gray、GRAY

灰色

white、WHITE

白色

 

green、GREEN

绿色

yellow、YELLOW

黄色

 

lightGray、LIGHT_GRAY

浅灰色3.常用方法

1)publicintgetRed()返回颜色中包含红的成份。

2)publicintgetGreen()返回颜色中包含绿的成份。

3)publicintgetBlue()返回颜色中包含蓝的成份。

4)publicstaticintHSBtoRGB(floathue,floatsaturation,floatbrightness)返回RGB值。

5)publicstaticfloat[]RGBtoHSB(intred,intgreen,intblue,floatvalues[])返回一个与RGB值相应的HSB值的浮点数组。

若values不为空(null),即values[0]表示色相、values[1]表示饱和度、values[2]表示亮度。

注意:

HSB(hue-saturation-brightness)是另一种指定颜色的方式,色相(hue)大约有红色、橙色、黄色、绿色、蓝色、靛青、紫色等;饱和度(staturation)代表了相应的色相的深浅或鲜艳程度;亮度(brightness)表示明暗。

它们都是介于0.0~1.0之间。

下边我们看一个示例。

例11.10使用applet绘制如图11-10所示奥运五环。

图11-10例11.10运行屏幕

程序参考代码如下:

/*这是一个设置绘图颜色的示例程序

*程序的名称是:

ColorExam11_10.java

*/

importjava.awt.*;

importjavax.swing.*;

publicclassColorExam11_10extendsJApplet

{

publicvoidpaint(Graphicsg)

{

g.setColor(Color.cyan);

g.fillRect(10,10,250,150);//填充矩形

g.setColor(Color.blue);//取得颜色

g.drawOval(50,50,50,50);

g.setColor(Color.black);//取得颜色

g.drawOval(105,50,50,50);

g.setColor(Color.red);//取得颜色

g.drawOval(160,50,50,50);

g.setColor(Color.orange);//取得颜色

g.drawOval(75,76,50,50);

g.setColor(Color.green);//取得颜色

g.drawOval(130,76,50,50);

}

}

在绘制图形的过程中,我们一般使用绘图类的setColor()方法设置新的绘制颜色,使用getColor()方法获得当前的绘制颜色。

11.2.2调色板

在一些常用的绘图工具中,一般都提供了调色板的功能。

在Java中,我们可以使用javax.swing.包中的JColorChooser类来实现调色板的功能。

JColorChooser提供一个用于允许用户操作和选择颜色的控制器窗格。

下边简要介绍一下JColorChooser类的功能。

1.构造方法

构建对象的方法如下:

1)JColorChooser()创建初始颜色为白色的颜色选取器窗格。

2)JColorChooser(ColorinitialColor)创建具有指定初始颜色的颜色选取器窗格。

3)JColorChooser(ColorSelectionModelmodel)创建具有指定ColorSelectionModel颜色选取器窗格。

2.类常量

1)CHOOSER_PANELS_PROPERTY其值为"chooserPanels",表示选择器窗格属性名。

2)PREVIEW_PANEL_PROPERTY其值为"previewPanel",表示预览窗格属性名。

3)SELECTION_MODEL_PROPERTY其值为"selectionModel",表示选择模型属性名。

3.常用方法

1)publicColorgetColor()获取颜色选取器的当前颜色值。

2)publicvoidsetColor(intr,intg,intb)将颜色选取器的当前颜色设置为指定的RGB颜色。

3)publicstaticColorshowDiaglog(Componentcomponent,Stringtitle,ColorinitColor)显示颜色选取器窗格并返回选取的颜色。

其中参数component表示该对话窗格所依赖的组件,title设置窗格标题,initColor设置初置的颜色。

showDialog()方法是一个类方法,在程序可以使用它来创建一个颜色对话框,选取所需要的颜色。

下边我们举一个例子说明调色板的应用。

例11.11设计如图11-11的用户屏幕,在界面上安排一个容器组件显示信息;安排一个按钮,当单击此按钮时弹出调色板对话框,选中所需颜色后,即以该颜色作为显示容器的背景色。

图11-11例11.11运行界面

程序参考代码如下:

/*这是一个使用调色板选取绘图颜色的示例程序

*程序的名称是:

ColorExam11_11.java

*/

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classColorExam11_11extendsJFrameimplementsActionListener

{

JButtonbt1=newJButton("改变颜色");

JPanelp1=newJPanel();

publicColorExam11_11()

{

Containerpane=this.getContentPane();

pane.setLayout(newFlowLayout());

pane.add(p1);

pane.add(bt1);

p1.add(newJLabel("这是一个改变对象背景的示例!

"));

bt1.addActionListener(this);

setSize(200,200);

setVisible(true);

setTitle("演示颜色对话框");

setDefaultCloseOperation(3);

}

publicstaticvoidmain(Stringargs[])

{

newColorExam11_11();

}

publicvoidactionPerformed(ActionEvente)

{

Colorc=JColorChooser.showDialog(null,"调色板",p1.getBackground());

p1.setBackground(c);

}

}

请大家运行上述程序,看一下调色板的应用。

11.2.3绘图模式

一般情况下,如果在同一位置多次绘制图形时,最近绘制的图形将覆盖原有的图形。

Graphics类中提供了以下两个方法来设置绘图模式(paintmode):

1)voidsetXORMode(ColorxorColor)xorColor指定了绘制图形时与窗口进行异或操作的颜色,使新绘制的图形以异或操作的方式加入到容器中。

异或模式的优点是无论使用什么颜色绘制,新的图形总是可见的。

2)voidsetPaintMode()覆盖模式,最新的图形总是覆盖原有的图形。

绘图模式可以控制被绘制的图形在容器上的显示方式,我们可以通过设置绘图模式来决定图形重叠部分之间的运算。

下边举一个简单的示例,看一下不同模式的绘制结果。

例11.12在applet容器中,绘制3个填充矩形,其中两个矩形以两种模式绘制并覆盖另一个矩形的一部分,对比一下绘制效果。

程序参考代码如下:

/*这是一个使用不同模式绘制图形的示例程序

*程序的名称是:

GriphicExam11_12.java

*/

importjava.awt.*;

importjava.applet.*;

publicclassGriphicExam11_12extendsApplet

{

publicvoidpaint(Graphicsg)

{

Colorcolor=newColor(0,255,0);

g.setColor(color);//前景绿色

g.fillRect(50,10,100,50);//填充矩形

g.setColor(Color.red);//设置红色

g.fillRect(10,10,60,30);//填充矩形

g.setXORMode(Color.yellow);//设置异或绘制模式

g.fillRect(120,10,100,30);//填充的矩形

}

}

请大家运行程序,看一下两种不同模式的绘制有什么区别。

11.2.4画笔

图形是由画笔绘制的,在前边我们讨论了如何改变画笔的颜色。

下边我们看一下如何设置画笔的大小和样式。

改变图形的样式时,需要用到java.awt.BasicStroke类,它可定义直线的宽度、连接的样式、直线末端的样式以及虚线的样式等。

下边简要介绍一下该类的功能及应用。

1.构造方法

构造BasicStroke对象常用的方法如下:

1)BasicStroke(floatwidth)

2)BasicStroke(floatwidth,intcap,intjoin)

3)BasicStroke(floatwidth,int

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1