JavaApplet的绘图直线程序运行问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 11:32:50
哎!是我笨还是书不好- -!
请Java前辈们看看吧!我怎么就搞不定他呢?
原程序如下:(书上就这么写的- -!)
import java.applet.*;
import java.awt.*;
public class MyClass1 extends Frame
{
public void paint(Graphics g)
{
g.drawLine(0,0,150,200);
}
public static void main(String args[])
{
MyClass1 f=new MyClass1();
f.setResizable(true);
f.setTitle("It's Line!");
f.reshape(10,10,300,200);
f.show();
f.repaint();
}
}
cmd提示如下:(欺负我英语不好- -!生气)
C:\j2sdk1.4.2_16\bin>javac MyClass1.java
Note: MyClass1.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
zicozhang兄,不是很明白,能详细些吗?

cmd的提示是告诉你说在你的程序代码中有过时的方法,什么叫过时,即说该方法可能在从很久很久以前(例如Java 1.4前时代)有用,但随着Java的日益完善,那些老的方法已经不适应现在的应用了,如果你强制使用过时的方法有时可能还会出现难以解释的Bug(即问题错误)!

你程序中主要过时的方法是reshape方法和show方法,我在下面已经替你修改好了,注释我写的清清楚楚的,你自己看看吧!

还有我要告诉你,你写的这个程序不是Java的applet小程序,而是正正规规的Java程序!

下面是我修改后的程序:

import java.awt.*;
import java.awt.event.*;

public class MyClass1 extends Frame{

public void paint(Graphics g)
{
g.drawLine(0,0,150,200);
}

public static void main(String args[])
{
MyClass1 f=new MyClass1();
f.setResizable(true);
f.setTitle("It's Line!");

//f.reshape(10,10,300,200);
//把上面过时的reshape方法用下面的setBounds方法代替
f.setBounds(10,10,300,200);

//f.show();
//把上面过时的show方法用下面的setVisible方法代替
f.setVisible(true);

//下面这几句代码的作用是当你点击窗口的关闭按钮时,就会退出程序
f.addWindowListener(new WindowAdapter()
{
public void windowClos