基本概念!
屏幕分辨率:以pixel为单位的屏幕面积,如800*600
位深:显示颜色数量。如8位有256色,16位有65536色
刷新率:单位HZ
有用的对象!
Window对象:代表屏幕内容,可看作绘图的画布,如JFrame就是Window的子类
DisplayMode对象:用来指定屏幕分辨率,位深和刷新率
GraphicsDevice对象:用来改变显示属性,可看作操纵显卡的界面,由GraphicsEnvironment对象取得
一个将JFrame放至全屏的例子!
import Java.awt.*;
import javax.swing.JFrame;
//先把三个对象预备好
JFrame jf=new JFrame();
DisplayMode displaymode=new DisplayMode(800,600,16,75);
GraphicsDevice device=GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
//JFrame至全屏
device.setFullscreenWindow(jf);
//改变显示方式
device.setDisplayMode(displaymode);
//退出全屏
device.setFullscreenWindow(null);
//想让效果更好一点,可以改变JFrame的显示方式。如:
jf.setUndecorated(true);
jf.setResizable(false);
//另外,一般在改变显示方式时需要加上必要的判定和捕捉异常,像这样:
if (device.isDisplayChangeSupported()){
try {
device.setDisplayMode(displayMode);
}catch (IllegalArgumentException ex) {}
}
//显示个HelloWorld试试?在一个JFrame里加上:
public void paint(Graphics g) {
g.drawString("Hello World!", 20, 50);
}
//文字可以用java.awt.Graphics2D类抗锯齿!
public void paint(Graphics g) {
if(g instanceof Graphics2D){
Graphics2D g2d=(Graphics2D)g;//Graphics2D是Graphics的子类
//抗锯齿,绘制质量等可参考RenderingHints类的文档!
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
}
g.drawString("Hello World!", 20, 50);
}
差不多了,下篇写绘制图形!