在使用形状(多边形)设置 JLabel 的 Clip 之前,getClip() 仍然返回 null

Posted

技术标签:

【中文标题】在使用形状(多边形)设置 JLabel 的 Clip 之前,getClip() 仍然返回 null【英文标题】:Before setting JLabel's Clip with a shape (polygon) getClip() still return null 【发布时间】:2014-09-11 12:29:52 【问题描述】:

在我的程序中,我尝试像这样设置 JLabel 的剪辑:

JLabel  jl = new JLabel();
jl.setVisible(true);
jl.setSize( 50, 50);
componentWhereIPutEverything.add( jl);
jl.setLocation( 50 , 50);

int xx[] =  (int) UpLeft.getX(), (int) UpRigth.getX(), (int) BottomRigth.getX(), (int) BottomLeft.getX()   ;
int yy[] =  (int) UpLeft.getY(), (int) UpRigth.getY(), (int) BottomRigth.getY(), (int)  BottomLeft.getY()  ;
Polygon poly = new Polygon(xx, yy, xx.length);
jlabel.getGraphics().setClip( poly );

在此之后,我尝试:

jl.getGraphics().getClip()

它返回null。 我该如何解决?错误在哪里? 谢谢;)

【问题讨论】:

【参考方案1】:

仅仅因为您将剪辑设置在一个图形对象上并不意味着它将适用于所有图形对象。您最好的解决方案是覆盖 getGraphics() 并在其中添加您的 setClip

public Graphics getGraphics() Graphics g = super.getGraphics(); g.setClip(...); return g;

【讨论】:

对不起,我犯了一个错误:我写了 jlabel.getGraphics().setClip(poly);而不是 jl.getGraphics().setClip( poly );那么,我的代码还是错了吗?感谢您的耐心等待

以上是关于在使用形状(多边形)设置 JLabel 的 Clip 之前,getClip() 仍然返回 null的主要内容,如果未能解决你的问题,请参考以下文章

在多边形形状范围内剪切线形状文件

将充满多边形形状的图片转换为代码

OpenLayers如何获取手动绘制的GeoJson数据

找到不规则形状多边形的“视觉”中心的最快方法是啥?

将由轮廓样条构建的形状转换为简单的多边形

检测 CGPoint 是不是在多边形内