在使用形状(多边形)设置 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的主要内容,如果未能解决你的问题,请参考以下文章