使用Java设置字型和颜色的方法详解

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类的其他常用方法:

  • getStyle(),返回字体风格。
  • getSize(),返回字体大小。
  • getName(),返回字体名称。
  • isPlain(),测试字体是否是正常字体。
  • isBold(),测试字体是否是粗体。
  • isItalic(),测试字体是否是斜体。

【例】小应用程序用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()获取颜色。
Color 类预定义颜色常量

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

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);
    }
  }
}
(0)

相关推荐

  • Java的绘图模式使用浅析

    绘图模式是指后绘制的图形与早先绘制的图形有重叠时,如何确定重叠部分的颜色.例如,后绘制的覆盖早先绘制的:或者后绘制与早先绘制的两种颜色按某种规则混合.主要有正常模式和异或模式两种:正常模式是后绘制的图形覆盖在早先绘制的图形之上,使早先贩图形的重叠部分不再可见.异或模式把绘图看作是按图形着色.异或模式绘图时,将当前正要绘图的颜色.原先绘制的颜色以及异或模式设定的颜色作特定的运算,得到实际绘图颜色.设置绘图模式的方法有: setPaintMode():设置绘图模式为覆盖模式(正常模式).正常模式是绘

  • 详解如何使用Java编写图形化的窗口

    窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用.有以下三种窗口: Applet窗口:Applet类管理这个窗口,当应用程序程序启动时,由系统创建和处理: 框架窗口(JFrame):这是通常意义上的窗口,它支持窗口周边的框架.标题栏,以及最小化.最大化和关闭按钮: 一种无边框窗口(JWindow):没有标题栏,没有框架,只是一个空的矩形. 用Swing中的JFrame类或它的子类创建的对象就是JFram

  • Java图形化编程中的键盘事件设计简介

    键盘事件的事件源一般丐组件相关,当一个组件处于激活状态时,按下.释放或敲击键盘上的某个键时就会发生键盘事件.键盘事件的接口是KeyListener,注册键盘事件监视器的方法是addKeyListener(监视器).实现KeyListener接口有3个: keyPressed(KeyEvent e):键盘上某个键被按下: keyReleased(KeyEvent e):键盘上某个键被按下,又释放: keyTyped(KeyEvent e):keyPressed和keyReleased两个方法的组合

  • 使用Java设置字型和颜色的方法详解

    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), 在指定的位

  • Java和C#输入输出流的方法(详解)

    1,Java中操作方法: import java.io.*; public class FileInputStreamTest { public static void main(String[] args) throws IOException { //创建字节输入流 FileInputStream fis = new FileInputStream("FileInputStreamTest.java"); //创建一个长度为1024的竹筒 byte[] bbuf = new byt

  • Java实现简易拼图游戏的方法详解

    目录 效果展示 游戏结构 实现代码 效果展示 介绍:游戏共有五张图片可以选择,分成了4 X 4 十六个方格,点击开始就可以开始游戏.游戏运行的截图如下: 游戏结构 实现代码 代码如下:MedleyGame.java类 package game.medleyPicture; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.even

  • Java通过反射注解赋值的方法详解

    目录 问题描述 最终解决 if/else 普通解法 通过反射注解赋值属性 解题思路 汇总某些字段的和 总结 源码 前段时间,领导分配一个统计销售区域汇总的数据,解决方案使用到了反射获取注解,通过注解获取属性或者设置字段属性. 问题描述 查询公司列表,分别是公司id.区域id.区域名称: 公司id 区域id 区域名称 1 1 华南 2 2 华北 3 2 华北 4 3 华东 5 3 华东 创建公司类Company: public class Company { public Company(Inte

  • C#实现给Word每一页设置不同文字水印的方法详解

    目录 方法思路 dll引用 代码示例 Word中设置水印时,可使用预设的文字或自定义文字设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不同的水印效果,则可以参考本文中的方法.下面,将以C# 代码为例,对Word每一页设置不同的文字水印效果作详细介绍. 方法思路 在给Word每一页添加文字水印前,首先需要在Word文档每一页正文的最后一个字符后面插入“连续”分节符,然后在每一节的页眉段落里添加艺术字形状,并设置形状大小.对齐方式等.最后保存文档

  • Java实现统计在线人数功能的方法详解

    目录 1. 监听器的简介 2. Java监听器的类型 (1)ServletContextListener (2)HttpSessionListener (3)ServletRequestListener (4)ServletContextAttributeListener (5)HttpSessionAttributeListener (6)ServletRequestAttributeListener (7)HttpSessionActivationListener 3.监听器Listener

  • Java的JSON处理器fastjson使用方法详解

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发. 主要特点: • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson) • 强大(支持普通JDK类包括任意Java Bean Class.Collection.Map.Date或enum) • 零依赖(没有依赖其它任何类库除了JDK) 示例代码: import com.alibaba.fastjson.JSON; Group group = new Group

  • Java实现优雅的参数校验方法详解

    目录 一.引子 二.如何优雅地校验参数 2.1 官方指导意见 2.2 注解用法说明 一.引子 要对方法的参数进行校验,最简单暴力的写法是这个样子: public static void utilA(String a,BigDecimal b){ if (StringUtils.isEmpty(a)){ System.out.println("a不可为空"); return; } if (b == null){ System.out.println("b不可为空");

  • Java实现读取Jar文件属性的方法详解

    目录 一.题目描述-读取Jar文件属性 1.题目 2.解题思路 3.代码详解 一.题目描述-读取Jar文件属性 1.题目 做一个读取jar文件的内容和功能的工具. 2.解题思路 创建一个类:ReaderJarFrame 使用ReaderJarFrame继承JFrame构建窗体 在选择jar后,窗体的表格会显示其内容. 创建一个类:ReadJar ReadJar类实现读取功能 读取的逻辑:使用JarFile类与Enumeration接口. jarFile是Java提供的一个类,可以读取jar包中的

  • Java中Optional类及orElse方法详解

    目录 引言 Java 中的 Optional 类 ofNullable() 方法 orElse() 方法 案例 orElseGet() 方法 案例 orElse() 与 orElseGet() 之间的区别 引言 为了让我更快的熟悉代码,前段时间组长交代了一个小任务,大致就是让我整理一下某个模块中涉及的 sql,也是方便我有目的的看代码,也是以后方便他们查问题(因为这个模块,涉及的判断很多,所以之前如果 sql 出错了,查问题比较繁琐). 昨天算是基本完成了,然后今天组长就让给我看一个该模块的缺陷

随机推荐