Java绘图中,显示文字的方法主要有三种:
(1)drawString(String str,int x,int y):在指定的位置显示字符串。
(2)drawChars(char data[],int offset,int length, int x, int y):在指定的位置显示字符数组中的文字,从字符数组的offset位置开始,最多显示length个字符。
(3)drawBytes(byte data[],int offset,int length,int x,int y), 在指定的位置显示字符数组中的文字,从字符数组的offset位置开始,最多显示length个字符。

这里给出的显示位置(x,y)为文字的基线的开始坐标,不是文字显示的矩形区域的左上角坐标。

文字字型有三个要素:

  • 字体:常用的字体有Times New Roman、Symbol、宋体、楷体等。
  • 风格:常用的风格有三种:正常、粗体和斜体;分别用三个常量表示:Font.PLAIN(正常)、Font.BOLD(粗体)和Font.ITALIC(斜体)。风格可以组合使用,例如 ,Font.BOLD+Font.ITALIC。
  • 字号:字号是字的大小,单位是磅。

在Java语言中,用类Font对象字型。Font类构造方法有:
    Font(String fontName,int style,int size),3个参数分别表示字体、风格和字号。例如,代码:
    Font fnA = new Font(“细明本”,Font.PLAIN,12)
设置的字型的是:细明体、正常风格, 12磅字号。

Font类的其他常用方法:

  1. getStyle(),返回字体风格。
  2. getSize(),返回字体大小。
  3. getName(),返回字体名称。
  4. isPlain(),测试字体是否是正常字体。
  5. isBold(),测试字体是否是粗体。
  6. isItalic(),测试字体是否是斜体。

【例 12-1】小应用程序用6种字型字符串,显示内容说明本身的字型。

 import java.applet.*;
import java.awt.*;
public class Example7_1 extends Applet{
Font f1 = new Font("Helvetica",Font.PLAIN,18);
Font f2 = new Font("Helvetica", Font.BOLD,10);
Font f3 = new Font("Helvetica",Font.ITALIC,12);
Font f4 = new Font("Courier",Font.PLAIN,12);
Font f5 = new Font("TimesRoman", Font.BOLD+Font.ITALIC,14);
Font f6 = new Font("Dialog",Font.ITALIC,14);
public void paint(Graphics g){
setSize(250,200);
g.setFont(f1);drawString("18pt plain Helvetica",5,20);
g.setFont(f2);drawString("10pt bold Helvetica",5,43);
g.setFont(f3);drawString("12pt italic Helvetica",5,58);
g.setFont(f4);drawString("12pt plain courier",5,75);
g.setFont(f5);drawString("14pt bold & italic times Roman",5,92);
g.setFont(f6);drawString("14pt italic dialog",5,111);
}
}

用类Color的对象设置颜色,有两种方法生成各种颜色:

  • 用类Color预定议的颜色:black,red, white, yellow ……;
  • 通过红绿蓝(RGB)的值合成颜色。

与颜色有关的常用方法:
(1)用类Color的构造方法Color(int R, int G,int B)创建一个颜色对象,参数R,G,B分别表示红色、绿色和蓝色,它们的取值是从0到255。
(2)用类Graphics的方法setColor(Color c),参数c的取值参见表12-1。
(3)用类Component的方法setBackground(Color c)设置背景颜色。因为小程序是组件类的子类,直接可用setBackground()方法改变背景色。
(4)用类Graphics的方法getColor()获取颜色。

表12-1 Color 类预定义颜色常量
black blue cyan
darkGray gray green
lightGray magenta orange
pink red white
yellow    

【例 12-2】小应用程序设置颜色并涂方块,其中绘制方块的方法将在后续小节中讲到。

 import java.applet.*;
import java.awt.*;
public class Example7_2 extends Applet{
public void paint(Graphics g){
setSize(380,200);
for(int i=0;i<=10;i++){
Color myredcolor = new Color(i*25+5,0,0);
g.setColor(myredcolor);
g.fillRect(i*32+5,2,28,28);
}
for(int i=0;i<=10;i++){
Color mygreencolor = new Color(0,i*25+5,0);
g.setColor(mygreencolor);
g.fillRect(i*32+5,32,28,28);
}
for(int i=0;i<=10;i++){
Color mybluecolor = new Color(0,0,i*25+5);
g.setColor(mybluecolor);
g.fillRect(i*32+5,62,28,28);
}
}
}

系列文章:

Java知多少(96)绘图之设置字型和颜色的更多相关文章

  1. 改变TLabel字型和颜色(Styled特性高于自身特性,李维的博客)

    最近收到几位使用者的来信都是和如何改变FireMonkey TLabel组件的字型和颜色, 这几位使用者都是直接改变TextSettings特性中的Font子特性但却无法改变字型和颜色, 因此来信询问 ...

  2. Java知多少(105)套接字(Socket)

    网络应用模式主要有: 主机/终端模式:集中计算,集中管理: 客户机/服务器(Client/Server,简称C/S)模式:分布计算,分布管理: 浏览器/服务器模式:利用Internet跨平台. www ...

  3. Java知多少(97)绘图模式概述

    绘图模式是指后绘制的图形与早先绘制的图形有重叠时,如何确定重叠部分的颜色.例如,后绘制的覆盖早先绘制的:或者后绘制与早先绘制的两种颜色按某种规则混合.主要有正常模式和异或模式两种:正常模式是后绘制的图 ...

  4. Java知多少(98)Graphics类的绘图方法

    Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力.本节讲解Graphics类,下节讲解Graphics2D. Graphics类提供基本的几何图形绘制方法,主要有:画线段 ...

  5. Java知多少(99)Graphics2D类的绘图方法

    Java语言在Graphics类提供绘制各种基本的几何图形的基础上,扩展Graphics类提供一个Graphics2D类,它拥用更强大的二维图形处理能力,提供.坐标转换.颜色管理以及文字布局等更精确的 ...

  6. Java知多少(完结篇)

    Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java ...

  7. Java知多少(下)

    Java知多少(78)Java向量(Vector)及其应用 Java知多少(79)哈希表及其应用 Java知多少(80)图形界面设计基础 Java知多少(81)框架窗口基础 Java知多少(82)标签 ...

  8. Java知多少(112)数据库之删除记录

    删除数据表也有3种方案 一.使用Statement对象 删除数据表记录的SQL语句的语法是: delete from 表名 where 特定条件 例如 : delete from ksInfo whe ...

  9. Java知多少(111)数据库之修改记录

    修改数据表记录也有3种方案. 一.使用Statement对象 实现修改数据表记录的SQL语句的语法是:    update表名 set 字段名1 = 字段值1,字段名2 = 字段值2,……where特 ...

随机推荐

  1. Nmap 7.70新增功能——扫描主机所有IP

     Nmap 7.70新增功能——扫描主机所有IP 有时,一个主机可能存在多个IP地址,如网站服务器.用户可以使用nmap提供的--resolve-all选项进行扫描.其语法格式如下:nmap --re ...

  2. Web大前端面试题-Day8

    1. 说说你对作用域链的理解? 作用域链的作用是保证执行环境里 有权访问的变量和函数是有序的, 作用域链的变量只能向上访问, 变量访问到window对象即被终止, 作用域链向下访问变量是不被允许的; ...

  3. HDU.4757.Tree(可持久化Trie)

    题目链接 \(Description\) 给定一棵树,点有点权.\(Q\)次询问\(x,y,z\),求\(x\)到\(y\)的简单路径中,与\(z\)异或能得到的最大的数是多少. \(Solution ...

  4. python3基础之文件对象操作

    1.向文本文件中写入内容 s = 'Hello world\n文本文件的读取方法\n文本文件的写入方法\n' # 需要写入文件的字符串 print('显示需要写入的内容:\n{0:s}'.format ...

  5. php parse_url 解析URL并返回其组成部分

    [导读] php parse_url 函数教程parse_url ( PHP 4中, PHP 5中) parse_url -解析URL并返回其组成部分 描述 混合parse_url (字符串$网址[摘 ...

  6. Flask启动原理,源码流程分析

    1.执行Flask的实例对象.run()方法 from flask import Flask,request,session app = Flask(__name__) app.secret_key ...

  7. Vs2017 控制台 中文输出是乱码的问题解决

    下午直接用vs写的控制台的东西,然后发现控制台输出的中文是乱码,于是就百度了下.同样的是,百度上很多的答案.我就说下我解决的过程.先上图 第一种方案:有可能是控制台的问题.若是控制台的问题,则与VS无 ...

  8. C#的?和??

    1.?? 为了实现Nullable数据类型转换成non-Nullable类型数据,才有的一个操作符: 意义:一变量取值,取符号左边的值,若左边为null,那么取赋值??右边的: 栗子:int  a=3 ...

  9. innodb文件

    参数文件 日志文件 socket文件 pid文件 mysql表结构文件 存储引擎文件 1. 错误日志 启用错误日志方法 /etc/init.d/mysql启动文件中 /usr/bin/mysqld_s ...

  10. 初识zookeeper(1)之zookeeper的安装及配置

    初识zookeeper(一)之zookeeper的安装及配置 1.简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送. ...