JAVA解答

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:38:33
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Homework extends JDialog implements ActionListener
{
private int delay=500;
private Timer timer=null;
public Homework()
{
setSize(400,170);
show();
timer=new Timer(delay,this);
timer.start();
}
public void actionPerformed(ActionEvent e) {
Graphics g = this.getContentPane().getGraphics();
if(g==null){
timer.stop();
return;
}
g.drawRect(20,40,90,55);
g.drawOval(20,40,90,55);
g.dispose();
}
public static void main(String args[])
{
Homework app=new Homework();
app.addWindowListener(new MyWindowListener());
}
}
为什么不能够实现矩形跟椭圆的转换,请把正确的代码贴出来

///实测通过
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Homework extends JDialog implements ActionListener
{
private int delay=500;
private Timer timer=null;
private boolean sw;//开关
public Homework()
{
this.getContentPane().setBackground(Color.white);
setSize(400,170);
show();
timer=new Timer(delay,this);
timer.start();
}
public void actionPerformed(ActionEvent e) {
Graphics g = this.getContentPane().getGraphics();
if(g==null){
timer.stop();
return;
}
//用白色复盖原来已画的区域,要不然两次以后圆和方框就都画上去了,就看到切变的效果
g.setColor(Color.white);
g.fillRect(20,40,91,56);
//画笔颜色设为黑色
g.setColor(Color.black);
if(sw=!sw)//用开关来指示要画什么?sw=true时画rect,否则oval
g.drawRect(20,40,90,55);
else
g.drawOval(20,40,90,55);
g.dispose();
}
public static void main(String args[])
{
Homework app=new Hom