亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 1796 | 回復(fù): 0
打印 上一主題 下一主題

文本與字體 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-12-12 19:58 |只看該作者 |倒序?yàn)g覽
文本與字體
  Graphics類也提供了在屏幕上顯示文本的方法,但若要使文本的顯示更具特色,讓它滿足某種字體、某種風(fēng)格及尺寸大小的要求,就需要用字體類Font來(lái)定義。
  1. 設(shè)置文本信息
  當(dāng)我們想要在屏幕上輸出文本信息時(shí),首先要確定的就是采用何種字體,例如中文的“宋體”、“楷體”,或是英文的“TimesRoman”體、
“Courier”體等等,接著再?zèng)Q定該字體輸出時(shí)采用哪種風(fēng)格,是斜體型還是粗體型等等,最后還要確定該字體的大小尺寸。所有這些都由Font類來(lái)定
義,我們不難猜出其構(gòu)造方法的調(diào)用格式:
  Font(String name, int style, int size)
  不錯(cuò),它的三個(gè)參數(shù)就是我們先前所說(shuō)的字體名、字體風(fēng)格和尺寸大小。并且Font類中已定義了類變量來(lái)表示字體的style值,如
Font.BOLD(表示粗體)、Font.ITALIC(表示斜體)、Font.PLAIN(表示普通體)。由于它們被定義為整數(shù)常量,因此可以進(jìn)行相
加運(yùn)算來(lái)生成復(fù)合style,例如想讓style即是粗體又是斜體,可以這樣寫:
  Font fn = new Font("TimesRoman", Font.BOLD+Font.ITALIC, 28);
  雖然我們定義了所需的字體,但其顯示結(jié)果有時(shí)也并非如愿。因?yàn)檫\(yùn)行該applet的客戶端系統(tǒng)有可能并未安裝該字體,這時(shí)Java就會(huì)以缺省字
體來(lái)替代它。因此,不妨先查看一下客戶端系統(tǒng)目前究竟支持哪些字體,這就要用到j(luò)ava.awt.Toolkit類中的getFontlist(
)方法,它返回系統(tǒng)目前可用的字體列表,然后就可決定到底選用哪種字體。例如:
  Toolkit systk = Toolkit.getDefaultToolkit( );
tring fonts = systk.getFontList( );
  2. 顯示文本
  創(chuàng)建了Font對(duì)象以后,我們就可以利用Graphics類中提供的drawString( )、drawChars( )等方法來(lái)顯示字符串與字符。當(dāng)然,首先還要用setFont(
)方法,將所創(chuàng)建的Font對(duì)象設(shè)為當(dāng)前所用的字體。下面就是Graphics類中這三個(gè)方法的調(diào)用格式:
  setFont(Font font);
drawString(String str, int x, int y)
drawChars(char data[], int offset, int length, int x, int y)
  其中setFont(
)方法的參數(shù)就是一個(gè)創(chuàng)建好的Font對(duì)象,表明系統(tǒng)當(dāng)前選用哪個(gè)Font對(duì)象所定義的字體信息。drawString(
)方法中的str即是要顯示的字符串,x,y指明字符串顯示的起始位置坐標(biāo),具體的說(shuō),x表示第一個(gè)字符的左邊界,y表示整個(gè)字符串的基線
(baseline,見圖4-12)位置坐標(biāo)。因此,這里的坐標(biāo)并不是通常意義上的矩形區(qū)域的左上角。drawChars(
)方法則是用來(lái)顯示多個(gè)字符的,也就是從給定的字符數(shù)組中抽取連續(xù)的一部分顯示在屏幕上。其中data參數(shù)就是給定的原始字符數(shù)組,offset表示從第
幾個(gè)字符位置開始顯示,length表示共顯示幾個(gè)字符,x與y參數(shù)的含義與drawString( )方法一樣,代表顯示在屏幕上的起始位置。
  如下面的程序顯示了一些不同的文本字體,其顯示結(jié)果如圖4-11所示。
  import java.awt.Graphics;
import java.awt.Font;
public class Fonts extends java.applet.Applet{
public void paint(Graphics g){
Font ftp20 = new Font("TimesRoman",Font.PLAIN,20);
Font fai15 = new Font("Arial",Font.ITALIC,15);
Font fcb24 = new Font("Courier",Font.BOLD,24);
Font fsib30 = new Font("宋體",Font.ITALIC+Font.BOLD,30);
g.setFont(ftp20);
g.drawString("Font name TimesRoman , style plain , size 20",10,20);
g.setFont(fai15);
g.drawString("Font name Arial , style italic , size 15",10,50);
g.setFont(fcb24);
g.drawString("Font name Courier , style bold , size 24",10,80);
g.setFont(fsib30);
g.drawString("字體名 宋體,風(fēng)格 斜體+粗體,尺寸 30",10,120);
}
}
    
  圖4-11 各種字體的例子
  3. 獲取字體信息
  (1)獲取基本信息
  如果不清楚系統(tǒng)當(dāng)前所用的字體信息,可以先調(diào)用Graphics類中的getFont( )方法,該方法無(wú)參數(shù),它返回系統(tǒng)當(dāng)前所用的Font對(duì)象,然后就可以調(diào)用Font類中提供的幾個(gè)方法來(lái)獲取該字體的基本信息。表4-1列出了Font類中的這些方法。
  表4-1 Font類提供的一些主要方法
  (2)獲取詳細(xì)信息
  有時(shí)候,我們?yōu)榱嗽谄聊簧细_地定位文本,還需要了解所選字體的更詳細(xì)的信息,例如整個(gè)字符串到底有多高,有多寬,兩行字符串的間隙有多少等
等。這時(shí),我們需要用到一個(gè)新的類FontMetrics來(lái)提供這一信息。我們可以調(diào)用Graphics類中的getFontMetrics(
)方法來(lái)獲取關(guān)于當(dāng)前字體的FontMetrics對(duì)象(該方法也無(wú)參數(shù))。然后就可以利用表4-2所示的FontMetrics類中所提供的方法來(lái)獲取
更詳細(xì)的字體信息。圖4-12中給出了字體中關(guān)于Ascent、Descent、Leading等概念的示意圖。
  4.1.3 顏色的設(shè)置
  現(xiàn)在,讓我們改變一下總是在灰色背景上用黑色繪圖以及顯示文本的習(xí)慣,而給我們的applet增添一些五彩繽紛的色彩。與設(shè)置字體信息相似,要
設(shè)置新的顏色,必須先創(chuàng)建Color對(duì)象,然后再調(diào)用Graphics類中設(shè)置顏色的方法來(lái)將生成的Color對(duì)象設(shè)為當(dāng)前所用的繪圖顏色。
    
  圖4-12字體
  1. 創(chuàng)建Color類
  Java中每一種顏色都看成是由紅(R)、綠(G)、藍(lán)(B)三原色組合而成的。因此Color類的構(gòu)造方法采用如下格式:
  Color(int r, int g, int b)
  其中每個(gè)參數(shù)的值都在0到255之間,數(shù)值越大就表明這種顏色的成份越重。例如(0,0,0)代表黑色,(255,0,0)代表紅色。當(dāng)然最終
在屏幕上是否能顯示所定義的顏色還取決于客戶端系統(tǒng)的調(diào)色板所支持的顏色種類的多少。若客戶端系統(tǒng)的調(diào)色板并不支持當(dāng)前所定義的顏色值,就會(huì)在調(diào)色板中挑
選最接近的顏色來(lái)代替。
  Color類中還定義了一些標(biāo)準(zhǔn)顏色的Color對(duì)象存儲(chǔ)在類變量中,使的這些標(biāo)準(zhǔn)顏色的引用顯得更為方便。這些類變量如表4-3所示。
  2. 設(shè)置當(dāng)前顏色
  為了能使用剛才生成好的Color對(duì)象來(lái)顯示文本及繪制圖形,還需調(diào)用Graphics類中的setColor( )方法把這個(gè)對(duì)象設(shè)置為系統(tǒng)當(dāng)前所用的繪畫顏色,其調(diào)用格式為:
  setColor(Color c)
  例如,想要用藍(lán)色來(lái)顯示文本,最簡(jiǎn)單的辦法是直接引用標(biāo)準(zhǔn)色的類變量:
  setColor(Color.blue);
  另外,Java還提供了設(shè)置整個(gè)applet的背景和前景的方法,它們分別是setBackground(
)方法和setForeground(
)方法,它們都被定義在java.awt.Component類中,因此該方法能被其子類(包括Applet類及Applet類的子類)自動(dòng)繼承,它們的
調(diào)用格式與setColor( )方法一樣:
  setBackground(Color c)
setForeground(Color c)
  其中setForeground( )方法將影響到applet中所有已經(jīng)用其它任何顏色所繪制的圖形顯示的文本,把它們一下子都變?yōu)樵摲椒ㄋx的前景顏色,而不需用該顏色重新一一繪制。有“set”必有相應(yīng)的“get”,Java中還提供了getColor(
)方法(Graphics類中)、getBackground( )方法和getForeground( )方法(Component類中)來(lái)分別獲取當(dāng)前的繪圖顏色、applet背景及前景顏色的對(duì)象。
  下面,我們寫一段程序來(lái)顯示一排用隨機(jī)定義的顏色所填充的小方塊,它們的顯示效果如圖4-13所示。
  import java.awt.Graphics;
mport java.awt.Color;
public class Colors extends java.applet.Applet{
public void paint(Graphics g){
int red,green,blue;
for (inti=10;i
  

本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u3/106716/showart_2119431.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP