import java.util.Timer;
import java.awt.*;
import java.awt.event.*;
public class hx {
a e;
Frame f;
public void p()
{ Frame f= new Frame();
Timer timer = new Timer();
e=new a();
f.add(e,BorderLayout.CENTER); e.setBounds(100,0,20,20);
f.setSize(300,300);
f.setVisible(true);
timer.schedule(new MyTask(), 1000, 100);
} class MyTask extends java.util.TimerTask
{
public void run(){
a.i+=90;
a.repaint();//重绘
}
} class a extends Canvas
{ int i=0;
public void paint(Graphics g)
{
g.setColor(Color.red);
g.fillArc(0, 0, 100, 100, i, 180);
g.setColor(Color.yellow);
g.fillArc(0, 0, 100, 100, i+90, 180);
g.setColor(Color.blue);
g.fillArc(0, 0, 100, 100, i+180, 180);
}
}
public static void main(String[] args)
{
hx t=new hx();t.p();
}
}
提示是:无法从静态上下文应用非静态变量i和repaint()
import java.awt.*;
import java.awt.event.*;
public class hx {
a e;
Frame f;
public void p()
{ Frame f= new Frame();
Timer timer = new Timer();
e=new a();
f.add(e,BorderLayout.CENTER); e.setBounds(100,0,20,20);
f.setSize(300,300);
f.setVisible(true);
timer.schedule(new MyTask(), 1000, 100);
} class MyTask extends java.util.TimerTask
{
public void run(){
a.i+=90;
a.repaint();//重绘
}
} class a extends Canvas
{ int i=0;
public void paint(Graphics g)
{
g.setColor(Color.red);
g.fillArc(0, 0, 100, 100, i, 180);
g.setColor(Color.yellow);
g.fillArc(0, 0, 100, 100, i+90, 180);
g.setColor(Color.blue);
g.fillArc(0, 0, 100, 100, i+180, 180);
}
}
public static void main(String[] args)
{
hx t=new hx();t.p();
}
}
提示是:无法从静态上下文应用非静态变量i和repaint()
//错误在这里,不是用a,而是用e
public void run(){
a.i+=90;
a.repaint();//重绘
}
} 楼主搞错变量了。public void run(){
e.i+=90;
e.repaint();//重绘
}
}