Graphics2D.drawString输出文字如何实现字体描边的效果

thunderbird521 2014-02-02 11:18:05
字体描边的效果如下:
效果对比如下,描边的是我想要的效果:


代码如下:

g = img.createGraphics();
g.setBackground(Color.BLACK);
g.setColor(Color.WHITE);

if (this.font != null)
g.setFont(this.font);


g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
g.drawString(content, this.x, this.y);
g.dispose();
求高手不吝赐教,多谢了,给您拜年了~~~!
...全文
2781 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gloomyfish 2014-02-04
  • 打赏
  • 举报
回复 1
终于有个明白人, 设置stroke画笔即可! 此乃所有图形与图像API的通用做法! 不知道只能怪你没做过UI渲染! 拍你一下,别介意!
thunderbird521 2014-02-03
  • 打赏
  • 举报
回复
@raistlic,你发的帖子是英文的看不懂,另外有没有“Font 本身应该包含了矢量绘图”相关的例子啊,我看Font构造方法就三个参数Font font = new Font("黑体", Font.PLAIN, 25);分别是字体,样式,和字号,没有你说的“矢量绘图”。
raistlic 2014-02-03
  • 打赏
  • 举报
回复
你需要的功能应该是 "string to shape" Font 本身应该包含了矢量绘图的信息,所以应该可以,搜了一下找到下面这个,你可以试一下: http://stackoverflow.com/questions/2466233/java-swing-converting-a-text-string-to-a-shape
raistlic 2014-02-03
  • 打赏
  • 举报
回复 1
引用 2 楼 thunderbird521 的回复:
你发的帖子是英文的看不懂


这话程序猿不能说,——看不懂,查词典。

而且那帖子里第一个回答就是代码示例,代码总能看懂吧,里面的代码稍微改一下就能看到效果:



import javax.swing.*;
import java.awt.*;
import java.awt.font.GlyphVector;

public class Test extends JComponent {

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {

JFrame test = new JFrame("Test");

test.setContentPane(new Test());
test.pack();
test.setLocationRelativeTo(null);
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.setVisible(true);
}
});
}

Test() {

setPreferredSize(new Dimension(800, 600));
}

@Override
protected void paintComponent(Graphics g) {

Font f = new Font("Courier New", Font.BOLD, 140);
GlyphVector v = f.createGlyphVector(getFontMetrics(f).getFontRenderContext(), "Hello");
Shape shape = v.getOutline();

Rectangle bounds = shape.getBounds();

Graphics2D gg = (Graphics2D) g;
gg.translate(
(getWidth() - bounds.width) / 2 - bounds.x,
(getHeight() - bounds.height) / 2 - bounds.y
);
gg.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
gg.setColor(Color.WHITE);
gg.fill(shape);
gg.setColor(Color.BLUE.darker().darker());
gg.setStroke(new BasicStroke(3));
gg.draw(shape);
}
}


内容概要:本文围绕间歇性光伏出力条件下48V直流母线电压的稳定控制与储能系统双向充放电的闭环调控体系展开深入研究,系统探讨了光伏阵列非线性输出特性与锂离子电池储能系统在离网直流微网中的能量均衡建模方法及分层控制策略。通过Simulink平台构建完整的光伏储能直流系统仿真模型,涵盖PV阵列、Boost DC-DC变换器、负载、双向DC-DC变换器及电池系统等关键组件,实现了最大功率点跟踪(MPPT)与储能系统的协同控制,有效应对光照波动引起的功率供需失衡问题。研究采用双PI闭环控制、模型预测控制(MPC)等多种先进控制算法,显著提升了系统的动态响应速度与直流母线电压稳定性,并实现了储能系统在削峰填谷中的优化运行,对于增强离网微网的供电可靠性与能源利用效率具有重要理论价值和工程意义。; 适合人群:具备电力电子、新能源系统或自动控制等相关领域基础知识的研究生、科研人员,以及从事微电网、光伏储能系统开发与设计的工程技术人员。; 使用场景及目标:① 构建适用于离网场景的光伏储能系统Simulink仿真模型;② 实现间歇性光照条件下48V直流母线电压的精确稳定控制与储能系统的双向能量管理;③ 研究MPPT控制与储能充放电策略之间的协同机制,提升系统在复杂工况下的运行稳定性与鲁棒性;④ 为微电网能量管理系统的设计、优化与性能验证提供可靠的理论依据和技术支撑。; 阅读建议:建议结合文中所述的Simulink仿真模型与控制算法,亲自动手实践建模与仿真全过程,重点关注MPPT控制策略的实现、双向DC-DC变换器的设计以及电压外环与电流内环构成的双闭环控制结构的参数整定,并通过设置不同的光照强度变化曲线和负载投切工况,全面测试和评估系统的动态响应能力与控制性能。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧