【发布时间】:2012-04-09 01:20:20
【问题描述】:
如果不使用super.paintComponent(g);,我还能清除我的 Jpanel 或 Jframe 屏幕吗?我在 JPanel 上绘制了一些形状,当用户在不使用此方法的情况下按下右键时,我想清除所有绘图。或者我说有没有 super.paintCompenent(g) 的替代方法或方法,如 clrscr(); 在 Java 中。
编辑
public void mousePressed(MouseEvent e) {
super.paintComponents(null); //i want to use this method here?? how can i?
if(e.isPopupTrigger())
{
s=e.getX();
as=e.getY();
try {
Thread.sleep(10L);
} catch (InterruptedException ex) {
Logger.getLogger(animate.class.getName()).log(Level.SEVERE, null, ex);
}
p.repaint();
}
}
我正在画这样的形状
public class mypanel extends JPanel {
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g ;
Color[] c = {Color.BLUE, Color.RED, Color.GREEN, Color.YELLOW,
Color.MAGENTA, Color.WHITE, Color.ORANGE, Color.PINK};
for(int i=0; i<8; ++i){
g2.setColor(c[i]);
int start_angle=i*45;
g2.fillArc(mx-100, my-100, 200, 200, start_angle,45);
}
【问题讨论】:
-
您可以调用重绘并停止调用图形基元。如果你有组件,那么只需调用 removeAll()
-
@Jeffrey 代码是什么?太长了。
-
@james 发布 SSCCE 然后:sscce.org
标签: java swing graphics drawing