JAVA CORE - Trang 148

www.updatesofts.com

!

"

+

&

font, nhiều dòng. Trong chương trình này, chúng ta cần in văn bản nhiều font trên nhiều
dòng. Lớp FontMetrics giúp ta xác định khoảng cách cần thiết để in một dòng văn bản cho
một font nào đó. Điều này thật cần thiết, bởi vì dòng thứ 2 được in ngay sau dòng thứ
nhất.

Trước tiên chúng ta in msg1 sử dụng font Monospaced. Sau đó, chúng ta xuất msg2 sử
dụng font iaglogInput. Để làm được điều này, chúng ta cần tính khỏng cách cần thiết để
xuất msg1. Phương thức stringWidth() của lớp FontMetrics được dùng để tính ra tổng
khoảng cách cần thiết để xuất msg1. khi chúng cộng thêm khoảng cách này vào biến x,
chúng ta sẽ lấy được vị trí mà chúng ta bắt đầu in đoạn văn bản kế tiếp, msg2. Phương
thức setFont() được dùng để thiết lập font để in văn bản.

Kế đó, chúng ta xuất msg1 và msg2 trên các dòng khác nhau sử dụng chung 1 font
Monospaced. Ở đây, chúng ta cần biết khoảng cách chiều cao của font, để in dòng kế tiếp.
Phương thức getHeight() được dùng để làm điều này.

Chương trình 6.8


import java.awt.*;
class MultiFontMultiLine extends Frame
{

public MultiFontMultiLine()

{

super ("Multiline Text");

setSize (450, 200);

setVisible (true);

}


public void paint (Graphics g)

{

Font f1 = new Font ("MonoSpaced", Font.BOLD, 18);

Font f2 = new Font ("DialogInput", Font.PLAIN, 14);


int x = 20;

int y = 50;

String msg1 = "Java Language";

String msg2 = "A new approach to programming";


FontMetrics fm = g.getFontMetrics(f1);

g.setFont(f1);

g.drawString (msg1, x, y);

x = x + fm.stringWidth(msg1);

g.setFont(f2);

g.drawString (msg2, x, y);

g.setFont(f1);

y = 100;

x = 20;

int height = fm.getHeight();

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.