告警展示3
对于存在告警信息的网元渲染,可以添加文字或图标,以加强其渲染效果或突出特例,在Twaver中可以通过添加装饰图标来实现相应功能。
Twaver中提供一组预定义的图标去展示网元状态,这些图标被IconAttchmentHolder管理,可以很容易定制新的图标添加到网元对象上。
Twaver文档中为展示相应功能,提供了一个例子:
//定义一个附加图标类
//必须定义成静态的公共类
public static class MyIconAttachment extends IconAttachment{
public MyIconAttachment(String name, ElementUI ui) {
super(name, ui, TWaverUtil.getImageIcon("myIcon.png"));
}
}
private void step8() {
String iconName="document";
//注册附加图标
TUIManager.registerAttachment(iconName, MyIconAttachment.class);
//添加附加图标
Element element = box.getElementByID("A");
element.addAttachment(iconName);
}
通过jdk也可以实现相似功能,其代码及说明如下:
/**
* 获取按照输入长度和宽度设定的图片
* @param image 源图片
* @param width 宽度
* @param hight 高度
* @return
*/
public static ImageIcon resizeIcon(ImageIcon image, int width, int hight) {
if (image != null && image.getIconWidth() != -1
&& image.getIconHeight() != -1) {
BufferedImage bi = new BufferedImage(image.getIconWidth(), image
.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D biContext = bi.createGraphics();
biContext.drawImage(image.getImage(), 0, 0, null);
Image scaledImage = bi.getScaledInstance(width, hight,
Image.SCALE_DEFAULT);
return new ImageIcon(scaledImage);
}
return null;
}
说明:本方法主要是将图片生成符合要求的图标文件,利用图片生成一个BufferedImage对象,然后利用getScaledInstance()创建一个新的图标文件文件。
getScaledInstance()方法:创建一个指定大小的新图像,此方法被调用时Image.SCALE_DEFAULT被提供,这个提示来自于java.awt.Image类:
l Image.SCALE_DEFAULT
l Image.SCALE_REPLICATE
l Image.SCALE_FAST
l Image.SCALE_SMOOTH
l Image.SCALE_AREA_AVERAGING
这些提示分为两类:DEFAULT、REPLICATE和FAST在Sun的Java实现上完全相等,它们使用与drawImage()的NEAREST_NEIGHBOR提示相同的方式。AREA_AVERAGING和SMOOTH方式在Sun的Java实现上完全相等,它们与getScaledInstance()的其他提示或drawImage()的BILINEAR和BICUBIC相比,通常产生的结果质量更高,尤其在大比例缩小一个图像的时候。
<!--EndFragment-->
/**
* 将一个图片设置到另一个图片里面,也可以理解为图片水印处理
* @param pressImg 水印图片
* @param targetImg 目标图片
* @param x 修正值 默认在中间
* @param y 修正值 默认在中间
* @param alpha 透明度
*/
public static ImageIcon processImage(Image pressImg, Image targetImg,
int x, int y, float alpha) {
if (pressImg != null && targetImg != null) {
int wideth = targetImg.getWidth(null);
int height = targetImg.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_ARGB);
Graphics2D g = image.createGraphics();
g.drawImage(targetImg, 0, 0, wideth, height, null);
int pressWideth = pressImg.getWidth(null);
int pressHeight = pressImg.getHeight(null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
alpha));
g.drawImage(pressImg, x, y, pressWideth, pressHeight, null);
g.dispose();
return new ImageIcon(image);
}
return null;
}
说明:本方法主要是通过图片合成技术生成一个新的图片对象。
具体示例显示:
与添加图标原理相似,也可以添加文字标注:
/**
* 在图片中添加文字,可以利用透明度属性来控制文字的显示程度,即可以理解为设置文字水印 若没有透明度要求,可以直接设置alpha为1.0f
* @param text 要显示的文字
* @param targetImg 目标图片
* @param fontName 字体名称
* @param fontStyle 字体样式
* @param color 字体颜色
* @param fontSize 字体大小
* @param x x坐标位置
* @param y y坐标位置
* @param alpha 透明度,一般设置为1.0f
*/
public ImageIcon processImageWithText(String text, Image srcImage,
String fontName, int fontStyle, Color color, int fontSize, int x,
int y, float alpha) {
if (srcImage != null && srcImage.getWidth(null) != -1
&& srcImage.getHeight(null) != -1) {
int width = srcImage.getWidth(null);
int height = srcImage.getHeight(null);
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
Graphics2D g = image.createGraphics();
g.drawImage(srcImage, 0, 0, width, height, null);
g.setColor(color);
g.setFont(new Font(fontName, fontStyle, fontSize));
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,alpha));
g.drawString(text, x, y);
g.dispose();
return new ImageIcon(image);
}
return null;
}
具体示例显示:
- 大小: 5.2 KB
- 大小: 4.7 KB
分享到:
相关推荐
java学习笔记5(java多线程)java学习笔记5(java多线程)
Deeplearning深度学习笔记v5.53 吴恩达机器学习笔记更新--在这 5 堂课中,学生将可以学习到深度学习的基础,学会构建神经网络,并用在包括吴 恩达本人在内的多位业界顶尖专家指导下创建自己的机器学习项目。...
良葛格Java_JDK_5.0学习笔记5
我的SAP BW成长学习笔记之5 SAP BW
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
CCNA学习笔记 CCNA学习笔记 CCNA学习笔记
PHP个人学习笔记
希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf
Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...
ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1
springcloudalibaba学习笔记
cad12学习笔记cad12学习笔记cad12学习笔记cad12学习笔记cad12学习笔记cad12学习笔记
Contiki学习笔记:进程、事件、etimer关系 Contiki 实例: Contiki学习笔记:创建两个交互进程 Contiki 主函数剖析: Contiki学习笔记:main函数剖析 Contiki学习笔记:启动一个进程process_start Contiki学习笔记...
人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能...
Learning hard C# 学习笔记
docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,...
nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) ...
go语言学习经典数据,雨痕,go语言学习笔记 第四版 pdf版本
《Friends学习笔记全集上》是一份非常珍贵的资源,专为那些希望通过观看经典美剧《Friends》(老友记)来提升英语水平的学习者所准备。这份笔记集合了第一部分的内容,涵盖了每一集的详细解读,包括剧本、字幕翻译...
我的学习笔记大全我的学习笔记大全我的学习笔记大全我的学习笔记大全