博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java斜体_Java可以指示字体是否为斜体字
阅读量:5742 次
发布时间:2019-06-18

本文共 1993 字,大约阅读时间需要 6 分钟。

是否有方法确定字体对象

真的?

斜体(不是要求斜体字体)?

在我的测试FONT.is italic()、FONT.getStyle()、FONT.getAttributes()中,如果使用FONT.italic样式创建了一个字体对象,那么它都表示该字体对象为斜体。这不考虑是否找到合适的斜体字体。结果是,对于所有意图和目的,字体对象都是斜体,但实际上呈现为纯文本,并且您无法通过编程检查此条件。

这会影响Oracle JDK 11和OpenJDK。

示例代码:

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics2D;

import java.awt.GraphicsConfiguration;

import java.awt.font.TextAttribute;

import java.awt.image.BufferedImage;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class SimpleFontTest {

private static Font FONT = new Font("Impact", Font.ITALIC, 18);

private static String TEXT = "The Quick Brown Fox";

public static void main(String args[]){

if (args.length > 0 && args[0] != null) {

String fontName = args[0];

FONT = new Font(fontName, Font.ITALIC, 18);

}

// All the different ways that this proves the font is italic

System.out.println("isItalic? " + FONT.isItalic());

System.out.println("style is Font.ITALIC? " + ((FONT.getStyle() & 0b10) == Font.ITALIC));

System.out.println("attributes include POSTURE_OBLIQUE? " + FONT.getAttributes().get(TextAttribute.POSTURE).equals(TextAttribute.POSTURE_OBLIQUE));

JFrame f = new JFrame("Simple Font Test: " + System.getProperty("java.vendor"));

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel label = new JLabel("JLabel: " + TEXT);

label.setFont(FONT);

GraphicsConfiguration gc = f.getGraphicsConfiguration();

BufferedImage image = gc.createCompatibleImage(400, 50);

Graphics2D g = image.createGraphics();

g.setFont(FONT);

g.setColor(Color.BLACK);

g.setBackground(Color.WHITE);

g.clearRect(0, 0, image.getWidth(), image.getHeight());

g.drawString("BufferedImage: " + TEXT, 10, 15);

g.dispose();

JLabel picLabel = new JLabel(new ImageIcon(image));

f.add(label, BorderLayout.PAGE_START);

f.add(picLabel, BorderLayout.CENTER);

f.setSize(400, 200);

f.setVisible(true);

}

}

SYSOUT:

isItalic? true

style is Font.ITALIC? true

attributes include POSTURE_OBLIQUE? true

图形输出:

9MZEA.png

转载地址:http://qfnzx.baihongyu.com/

你可能感兴趣的文章
java多线程之:Java中的ReentrantLock和synchronized两种锁定机制的对比 (转载)
查看>>
mysql性能优化学习笔记-参数介绍及优化建议
查看>>
[Everyday Mathematics]20150105
查看>>
166.3. 容器
查看>>
1.6. Network
查看>>
【Web动画】SVG 实现复杂线条动画
查看>>
主流手机分辨率 尺寸 操作系统
查看>>
Office版本差别引发的语法问题
查看>>
使用Wireshark捕捉USB通信数据
查看>>
iOS - KVC 键值编码
查看>>
《树莓派渗透测试实战》——1.1 购买树莓派
查看>>
Apache Storm 官方文档 —— FAQ
查看>>
量化交易入门——数学模型应用于投机交易
查看>>
C++游戏系列4:杀伤距离有限制
查看>>
iOS 高性能异构滚动视图构建方案 —— LazyScrollView
查看>>
Java 重载、重写、构造函数详解
查看>>
【Best Practice】基于阿里云数加·StreamCompute快速构建网站日志实时分析大屏
查看>>
【云栖大会】探索商业升级之路
查看>>
HybridDB实例新购指南
查看>>
小程序,会是下一个创业风口吗
查看>>