设置颜色与画笔
《零基础学Java》
-
设置颜色与画笔
Java使用 java.at.Color类 封装颜色的各种属性,并对颜色进行管理。在绘制图形时还可以指定线条的粗细、虚实等画笔属性,该属性通过 Stroke接口 指定。
-
设置颜色
Color类 可以创建任何颜色的对象。
Color对象构造方法:
//Color对象构造方法一 Color color = new Color(int r , int g , int b); /* r:红色值 g:绿色值 b:蓝色值 */ //Color对象构造方法二 Color color = new Color(int rgb); /* rgb:红、绿、蓝 三原色的总和 */
绘图类可以使用 setColor()方法 设置当前颜色。
setColor()方法 语法:
setColor(Color color); //color:颜色值
Color常量:
设置颜色 实例:
import javax.swing.*;
import java.awt.*;
public class Demo1 extends JFrame {
public Demo1(){
super();
init();
}
public void init(){
this.setSize(300,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("设置颜色");
add(new MyCanvas());
}
public static void main(String[] args) {
new Demo1().setVisible(true);
}
class MyCanvas extends Canvas{
@Override
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
Color c = Color.red; //红色对象
g2.setColor(Color.cyan); //设置颜色
g2.drawLine(5,30,100,30);
g2.setColor(c); //设置颜色
g2.fillRect(50,50,50,50);
}
}
}
设置颜色 实例输出结果:
-
设置画笔
默认情况下,Graphics绘图类 使用的画笔属性是粗细为I个像素的正方形,而Graphics2D类可以调用 setStroke()方法 设置画笔的属性,如改变线条的粗细、虚实和定义线段端点的形状、风格等。
setStroke()方法 语法:
setStroke(stroke stroke); // stroke:是Stroke接口的实现类
setStroke()方法 必须接受一个 Stroke接口 的实现类作参数,java.awt包中提供了BasicStroke类,它实现了Stroke接口,并且通过不同的构造方法创建画笔属性不同的对象。
BasicStroke类 的构造方法:
BasicStroke(); BasicStroke(float width); //设置画笔宽度 BasicStroke(float width , int cap , int join); //设置画笔宽度、末端效果、交汇效果 BasicStroke(float width , int cap , int join , float miterlimit); //设置画笔宽度、末端效果、交汇效果、斜切处的剪裁限制 BasicStroke(float width , int cap , int join , float miterlimit , float[] dash , float dash_phase); //设置画笔宽度、末端效果、交汇效果、斜切处的剪裁限制、虚线模式的数组、虚线模式的偏移量 /* cap参数的三个常量: 圆角:BasicStroke.CAP_ROUND 无修饰:BasicStroke.CAP_BUTT 正方形:BasicStroke.CAP_SQUARE join参数的三个常量: 平角:BasicStroke.JOIN_BEVEL 尖角:BasicStroke.JOIN_MITER 圆角:BasicStroke.JOIN_ROUND */
设置画笔 实例:
import javax.swing.*; import java.awt.*; public class Demo2 extends JFrame { public Demo2(){ super(); init(); } public void init(){ this.setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); add(new MyCanvas()); } public static void main(String[] arge){ new Demo2().setVisible(true); } class MyCanvas extends Canvas { public void paint(Graphics g){ Graphics2D g2 = (Graphics2D) g; // 直线 Stroke stroke = new BasicStroke(8); //设置画笔宽度 g2.setStroke(stroke); //加载画笔 g2.drawLine(20, 30, 120, 30); // 多边线 int x[] = {150,200,180}; int y[] = {30,30,80}; /* 末端效果: 圆角:BasicStroke.CAP_ROUND 无修饰:BasicStroke.CAP_BUTT 正方形:BasicStroke.CAP_SQUARE 角的交汇效果: 平角:BasicStroke.JOIN_BEVEL 尖角:BasicStroke.JOIN_MITER 圆角:BasicStroke.JOIN_ROUND */ Stroke stroke1 = new BasicStroke(12,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_ROUND); //设置画笔宽度、末端效果、角的交汇效果 g2.setStroke(stroke1); //加载画笔 g2.drawPolyline(x,y,3); } } }
设置画笔 实例输出结果: