在我的程序中,我尝试像这样设置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。 我该如何解决?错误在哪里? 谢谢;)
答案 0 :(得分:1)
仅仅因为你在一个图形对象上设置剪辑并不意味着它将适用于所有图形对象。您最好的解决方案是覆盖getGraphics()并在其中添加setClip
public Graphics getGraphics() {
Graphics g = super.getGraphics();
g.setClip(...);
return g;
}