颜色
g2.setPaint(Color.RED)
g2.drawString("Warning!",100,100)
只需要将调用的draw替换为调用fill就可以用一种颜色填充一个封闭图形(例如:矩形或椭圆)的内部
Rectangle2D rect=. . .;
g2.setPaint(Color.RED);
g2.fill(rect);
要想绘制多种颜色,就需要按照选择颜色,绘制图形,再选择另外一种颜色,再绘制图形的过程实施
可以通过提供红,绿和蓝三色成分来创建一个Color对象,以达到定制颜色的目的。
Color(int redness,int greenness,int blueness)
要想设置背景色,就需要使用Component类中的setBackground方法,Component类是JComponent类的祖先。
MyComponent p=new MyComponent();
p.setBackground(Color.PINK);
另外,还有一个setForeground方法,它是用来设定在组件上进行绘制时使用默认颜色。
java在SystemColor类中预定义了很多颜色的名字,在这个类中的常量,封装了用户系统的各个元素的颜色
p.setBackgroun(SystemColor.window)它将把面板的背景颜色设定为用户桌面上所有窗口使用的默认颜色
为文本设定特殊字体:
下面这个程序将打印出系统上的所有字体名:
package com.supermap;
import java.awt.GraphicsEnvironment;
public class ListFonts {
public static void main(String []args){
String[] fontNames=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
for (String string : fontNames) {
System.out.println(string);
}
}
}
字体就到这里了......
图像:
如果图像存储在本地文件中,就应该调用:
String filename="...";
Image image=ImageIo.read(new File(filename));
否则,应该提供URL:
String urlname="...";
Image image=ImageIo.read(new URL(urlname));
例子:
g.drawImage(imge,0,0,null)
for(int i=0;i*imageWidth<=getWidth();i++)
for(int j=0;j*imageHeight<=getHeight();j++)
if(i+j>0)
g.copyArea(0,0,imgeWidth,imageHeight,i*imageWidth,j*imageHeigth);
这个的好处是,无论窗口是变大还是变小,都会别image图像填满的。
static BufferedImage read(File)
static BufferedImage read(URL u)
从给定文件或URL上读取图像
boolean drawImage(Image img,int x,int y,null)
boolean drawImage(Image img,int x,int y,int width,int height,null)
void copyArea(int x,int y,int width,int height,int dx,int dy);
x,原始区域上角的坐标
y,原始区域上角的坐标
width原始区域的宽度
dx原始区域到目标区域的水平距离