可以用swing里的Timer;或者给eleven1实现一个Runnable接口。下面是用Timer的实现import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
//add by iame
import java.awt.event.*;
//MyWindowListener;//
public class eleven1 extends JFrame
{
  //add by iame
  Timer timer=new Timer(500,this);
  Color[] colors={Color.red,Color.green,Color.blue};
  int index=0;
public eleven1()
{
super("ready");
setSize(500,80);
show();
timer.start();
}
public void paint(Graphics g)
{
Font font=new Font("Serif",Font.BOLD,20);
//add by iame
g.setColor(colos[index%3]);
g.setFont(font);
g.drawString("按顺序变换水平线为红绿蓝色",60,60);
g.drawLine(60,70,400,70);
}
public static void main(String args[])
{
eleven1 app=new eleven1();
app.addWindowListener(new MyWindowListener());
}
}

解决方案 »

  1.   

    对不起,漏了一点,类的定义应为:
    public class eleven1 extends JFrame implement ActionListener
      

  2.   

    对不起,又漏了一个方法,
    public void actionPerformed(ActionEvent e)
    {
      index++;
      repaint();
    }
      

  3.   

    我的MyWindowListener.java是这样的:
    import java.awt.*;
    import java.awt.event.*;
    class MyWindowListener extends WindowAdapter
      {
      public void windowClosing(WindowEvent e)
        {
        System.exit(1);
        }
      }
    请完整写出
      

  4.   

    //完整的代码,直接编译后可运行import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    //add by iame
    import java.awt.event.*;
    class MyWindowListener extends WindowAdapter
      {
      public void windowClosing(WindowEvent e)
        {
        System.exit(1);
        }
      }public class eleven1 extends JFrame implements ActionListener
    {
      //add by iame
      Timer timer=new Timer(500,this);
      Color[] colors={Color.red,Color.green,Color.blue};
      int index=0;
    public eleven1()
    {
    super("ready");
    setSize(500,80);
    show();
    timer.start();
    }
    public void actionPerformed(ActionEvent e)
    {
      index++;
      repaint();
    }
    public void paint(Graphics g)
    {
    Font font=new Font("Serif",Font.BOLD,20);
    //add by iame
    g.setColor(colors[index%3]);
    g.setFont(font);
    g.drawString("按顺序变换水平线为红绿蓝色",60,60);
    g.drawLine(60,70,400,70);
    }
    public static void main(String args[])
    {
    eleven1 app=new eleven1();
    app.addWindowListener(new MyWindowListener());
    }