我正在学习AWT并计划稍后学习Swing。
我找到了applet的以下代码,我知道applet将在以下方法出现时开始运行:main(),init(),start(),paint()......
每次点击鼠标时,小程序只会增加它的宽度和长度尺寸:
在此代码中没有上述内容,如何调用ResizeMe方法?如果没有调用resize methid,addmouselistener是如何调用的? 编辑:btw代码工作
// Resizing output to fit the current size of a window.
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code="ResizeMe" width=200 height=200>
</applet>
*/
public class ResizeMe extends Applet {
final int inc = 25;
int max = 500;
int min = 200;
Dimension d;
public ResizeMe() {
addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent me) {
int w = (d.width + inc) > max?min :(d.width + inc);
int h = (d.height + inc) > max?min :(d.height + inc);
setSize(new Dimension(w, h));
}
});
}
public void paint(Graphics g) {
d = getSize();
g.drawLine(0, 0, d.width-1, d.height-1);
g.drawLine(0, d.height-1, d.width-1, 0);
g.drawRect(0, 0, d.width-1, d.height-1);
}
}
谢谢,路德
答案 0 :(得分:2)
是的,main
适用于桌面应用程序。在applet的生命周期中的特定时刻调用以下方法,并允许对该生命周期执行特定的操作。
此外,AWT的组成部分真的已经过时了;只有java.awt.Color,Font等正在使用,Applet,Button和其他人都不会轻易找到。
所以我建议立即转向挥杆。
AWT 让每个纯Java组件都与本机代码(操作系统)组件保持一致。因此,Windows上的Button是一个真正的Windows按钮。因此,Windows,Mac和Linux都有单独的AWT实现。
Swing 完成所有工作,并且有几种外观(主题/皮肤)。 System Look-and-Feek尽可能地模拟当前的操作系统。
Swings的优势在于其高度可配置性,例如JLabel最小化图标和文本之间的距离,或者只需编写"<html><b>Boldly</b> go, ..."
即可为每个文本组件使用HTML。
Swing是一项新的努力。
答案 1 :(得分:2)
ResizeMe()
是构造函数。因此,它会在类创建时调用,因此会添加鼠标侦听器。 GUI事件处理线程调用paint()
。
答案 2 :(得分:1)
Java Applet类为init
,start
和paint
方法提供默认实现(请参阅java.applet.Applet)。 ResizeMe类继承自java.applet.Applet
,因此继承了Applet类中的所有方法(有关继承的更多信息,请参阅subclasses)。
Applet不需要main
方法,因为它嵌入在另一个应用程序中。
ResizeMe()
方法是构造函数。在实例化ResizeMe类时会自动调用它。
答案 3 :(得分:0)
ResizeMe正在扩展Applet,这意味着它继承了Applet拥有的所有方法。看看Docs for Applet,看看它包含哪些方法,以及它从父母那里继承的方法。
此外,没有理由学习AWT然后学习Swing。