Java 删除在图像上绘制的矩形
我在Java 删除在图像上绘制的矩形,java,swing,netbeans-7,jlabel,rectangles,Java,Swing,Netbeans 7,Jlabel,Rectangles,我在jLabel中显示了一个图像。单击图像的任何部分时,将绘制一个40x40的矩形。现在我想在按下remove(jButton)时从图像中删除绘制的矩形。我试过下面的代码 public void paint (Graphics g) { g2 = (Graphics2D) g; g2.clearRect(n,n1, 40,40 ); } private void jButton2ActionPerformed(java.awt.eve
jLabel
中显示了一个图像。单击图像的任何部分时,将绘制一个40x40的矩形。现在我想在按下remove(jButton)时从图像中删除绘制的矩形。我试过下面的代码
public void paint (Graphics g) {
g2 = (Graphics2D) g;
g2.clearRect(n,n1, 40,40 );
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
repaint(n,n1,40,40);
}
它只是用背景色填充矩形,而不是删除。有没有办法在不填充任何颜色的情况下删除矩形?即保留原始图像本身?自定义绘制是在标签的paintcompent(..)方法中完成的,而不是paint()方法。您还应该调用super.paintComponent(g)作为第一条语句 在您的例子中,似乎需要一个布尔变量来控制矩形的绘制时间。可能是这样的:
@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
if (paintRectangle)
// paint the rectangle
}
现在,在ActionListener中,您只需将paintRectangle变量设置为false,并在组件上调用repaint()。是否调用
getGraphics()
来绘制图像?如果是的话,你应该看看