基本概念!
屏幕分辨率:以pixel為單位的屏幕面積,如800*600
位深:顯示顏色數(shù)量。如8位有256色,16位有65536色
刷新率:?jiǎn)挝籋Z
有用的對(duì)象!
Window對(duì)象:代表屏幕內(nèi)容,可看作繪圖的畫布,如JFrame就是Window的子類
DisplayMode對(duì)象:用來指定屏幕分辨率,位深和刷新率
GraphicsDevice對(duì)象:用來改變顯示屬性,可看作操縱顯卡的界面,由GraphicsEnvironment對(duì)象取得
一個(gè)將JFrame放至全屏的例子!
import java.awt.*;
import javax.swing.JFrame;
//先把三個(gè)對(duì)象預(yù)備好
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);
//想讓效果更好一點(diǎn),可以改變JFrame的顯示方式。如:
jf.setUndecorated(true);
jf.setResizable(false);
//另外,一般在改變顯示方式時(shí)需要加上必要的判定和捕捉異常,像這樣:
if (device.isDisplayChangeSupported()){
try {
device.setDisplayMode(displayMode);
}catch (IllegalArgumentException ex) {}
}
//顯示個(gè)HelloWorld試試?在一個(gè)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的子類
//抗鋸齒,繪制質(zhì)量等可參考RenderingHints類的文檔!
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
}
g.drawString("Hello World!", 20, 50);
}
差不多了,下篇寫繪制圖形!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注