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

时间:2014-09-11 12:29:52

标签: graphics null jlabel clip

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

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 个答案:

答案 0 :(得分:1)

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

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