java画图消除锯齿_java – JButton文本的消除锯齿
我在JButton中使用Font Awesome来创建一个可点击的图标,但是当尺寸很小时,生成的图标会显示为别名.正如一些背景知识,Font Awesome是一个可下载的ttf文件(字体文件),其中每个字符都是一个“可缩放的矢量图标”.看过谷歌以前的答案和堆栈溢出,我试图通过覆盖JButton的paintComponent方法来强制消除锯齿;但这似乎没有效果:
import java.awt.*;
import java.io.File;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test extends JFrame{
public Test(){
Font fontAwesome = null;
try {
fontAwesome = Font.createFont(Font.TRUETYPE_FONT, new File("font-awesome-4.2.0\fonts\fontawesome-webfont.ttf"));
fontAwesome = fontAwesome.deriveFont(Font.PLAIN, 100);
} catch (FontFormatException | IOException e) {
e.printStackTrace();
}
JButton iconButton = new JButton(""){
@Override
public void paintComponent(Graphics g) {
Graphics2D graphics2d = (Graphics2D) g;
graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//graphics2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
//graphics2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
//graphics2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
super.paintComponent(graphics2d);
}
};
iconButton.setFont(fontAwesome);
iconButton.setFocusPainted(false);
this.add(iconButton);
this.setVisible(true);
this.pack();
}
public static void main(String[] args){
new Test();
}
}
以下图像显示了字体大小为30,100和200的结果字体图标:
如何为小字体强制消除锯齿?
更新:我使用内置的java字体而不是Font Awesome测试了相同的代码,并且完全相同的问题也适用.
java画图消除锯齿_java – JButton文本的消除锯齿相关推荐
- java 画图 例子_JAVA简易画图工具
[实例简介] GUI界面 实现了简单的画线 圆 矩形 以及颜色 供学习参考使用 [实例截图] [核心代码] JPainter └── JPainter ├── bin │ └── cn │ ├ ...
- java画图排版_Java实现第八届蓝桥杯图形排版
标题:图形排版 小明需要在一篇文档中加入 N 张图片,其中第 i 张图片的宽度是 Wi,高度是 Hi. 假设纸张的宽度是 M,小明使用的文档编辑工具会用以下方式对图片进行自动排版: 1. 该工具会按照 ...
- java实现单词_java实现简单的英文文本单词翻译器功能示例
导读热词 本文实例讲述了java实现简单的英文文本单词翻译器功能.分享给大家供大家参考,具体如下: 直接上代码: package fanyi; import java.io.BufferedReade ...
- Java画图软件制作
实现了简单的电脑画图软件,代码如下: import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.CardLa ...
- 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发
今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~课程详细讲解了一个桌球游戏的编写思路和流程,即使你刚学Java没多久,也可以跟随该教程视频完成属于你自己的桌球游戏!同时,还可以加深和 ...
- jbutton可以设置id吗_Java JButton.setHorizontalTextPosition方法代碼示例
本文整理匯總了Java中javax.swing.JButton.setHorizontalTextPosition方法的典型用法代碼示例.如果您正苦於以下問題:Java JButton.setHori ...
- 用java的io做一个代码计数器,如何制作Java页面计数器_java
大庆采油六厂采油工艺研究所 王兵 王波 常常逛WWW的人,一定对许多起始页上的计数器感兴趣.每当你光临某个站点的起始页时,它的计数器就很亲切地告诉你,从某年某月某日开始,你是第几位光临的人.你可能也想 ...
- java 限制文本框长度_[Java教程]如何限制textarea文本框的输入字数
[Java教程]如何限制textarea文本框的输入字数 0 2015-12-24 15:00:10 如何限制textarea文本框的输入字数: 在实际应用中,往往需要限制文本框的输入字数的长度,下面 ...
- java textfield类方法_java.awt.TextField类
java.awt.TextField是一个文本框组件 1.构造方法 TextField():创建一个默认长度为一个机器字符长的文本框 TextField(int n):创建一个指定长度为n个机器字符长 ...
最新文章
- 并发模型之——基本概念
- shellwhile比较_[Shell] if、for、while流程语句以及整数字符串判断比较的实例详解...
- 在大流行的世界中如何建立技术社区
- 设计模式--请参阅本质
- mysql group by cube_SparkSQL 中group by、grouping sets、rollup和cube方法详解
- win10无法新建文件夹怎么办 win10右键新建菜单设置方法
- bzoj 3355: [Usaco2004 Jan]有序奶牛(拓扑排序+bitset)
- bzoj 1681: [Usaco2005 Mar]Checking an Alibi 不在场的证明(BFS)
- 推荐两款Docker可视化工具
- 网络工程师的机会在哪里
- 【车流量计数】基于matlab光流场交通汽车检测跟踪【含Matlab源码 503期】
- MySQL调用存储过程和函数
- mcafee完全彻底卸载方法
- 计算机网络实验一:网线制作和局域网组建
- java出现报错java.lang.IndexOutOfBoundsException
- Qt之Q_OBJECT
- 蓝桥杯大赛(大学B组)—— 数字三角形 (C语言)
- Len()、Lenw()与Lenb()函数间的区别
- 【Scratch-动作模块】碰到边缘就反弹和翻转方式
- 2020读书笔记 《马歇尔传记》