当前位置: 代码迷 >> J2SE >> java Applet怎么在cmd下用main()也能同样运行
  详细解决方案

java Applet怎么在cmd下用main()也能同样运行

热度:74   发布时间:2016-04-24 12:17:43.0
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);  }}
------解决方案--------------------
探讨
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(Co……

------解决方案--------------------
你加上下面的code:
Java code
frame0.addWindowListener(new WindowAdapter() {        @Override        public void windowClosing(WindowEvent e) {            super.windowClosed(e);            System.exit(0);        }    });
  相关解决方案