java Applet如何在cmd下用main()也能同样运行?
mport java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class webTest extends Applet
{
public void paint(Graphics g)
{
int k=10;
g.setColor(Color.red);
for (int i=1;i<=30;i++)
g.drawString(""+i,20,20+i*15);
}
public static void main(String args[])
{
Frame frame0=new Frame("Frame1");
frame0.setSize(800,600);
frame0.setVisible(true);
Graphics g=frame0.getGraphics();
webTest web1=new webTest();
web1.paint(g);
}
关键是如何在静态方法中,调用 paint(Graphics g)问题,
1.不能直接在main()中调用paint(Graphics g),有没有更好的方法?
2.frame0没法关闭,如何用事件解决?
3.我的上述代码虽然能显示,但Frame0中显示的东西一旦破坏就不能自动刷新,
如何放到重画事件中?
------解决方案--------------------如果方法是静态方法的话,可以用类名.方法调用..即是: webTest.paint();
如果方法不是静态方法的话,必须先行实例化webTest类的对象,再用对象调用..
即:
webTest wt= new webTest();
wt.paint();
------解决方案--------------------
Java code
import java.applet.Applet;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
public class WebTest extends Applet //类的名字建议大写
{
public void paint(Graphics g)
{
int k=10;
g.setColor(Color.red);
for (int i=1;i<=30;i++)
g.drawString(""+i,20,20+i*15);
}
public static void main(String args[])
{
Frame frame0=new Frame("Frame1");
WebTest web1=new WebTest();
frame0.add(web1); //Applet是Panel类的子类,所以,当做Panel直接加在Frame里面就行了。
frame0.setSize(800,600);
frame0.setVisible(true);
}
}
------解决方案--------------------
------解决方案--------------------
你加上下面的code:
Java code
frame0.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosed(e);
System.exit(0);
}
});