怎 样 在APPLET 中 发EMAIL

天 津 大 学 电 子 系 范 仲 方
zffan@public.tpt.tj.cn

--------------------------------------------------------------------------------


为 了 得 到 反 馈, 我 们 在 设 计 主 页 时 经 常 将 自 己 的email 地 址 嵌 在 主 页 上 以 便 读 者 与 我 们 联 系。 其 中 最 普 遍 的 作 法 是 利 用HTML 语 言 加 上:
Feedback to Author! 这 样 作 的 缺 点 是 无 论 读 者 使 用 的 是Internet Explorer 还 是Netscape Navigator, 在 点 击 作 者 地 址 时 都 需 另 打 开 一 个 写 作 窗 口, 使 主 页 窗 口 被 覆 盖。 这 样 读 者 在 写 信 时 看 不 到 原 文 的 内 容 也 不 易 进 行 引 用。 笔 者 设 计 了 一 个JAVA APPLET 可 嵌 在 主 页 上, 解 决 了 这 个 问 题, 同 时 使 没 有email 地 址 的 人 也 可 反 馈 信 息。 源 程 序 如 下:

import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;

public class Javamail extends Applet {

private int SMTP_PORT = 25;
//邮件服务器缺省端口号
private String appletSource = "202.99.96.140";
//作者邮件服务器IP
private TextArea MsgArea;
private TextField senderField, recipientField, hostField;

public void init() {

setLayout(new BorderLayout());
Panel fields = new Panel();
fields.setLayout(new GridLayout(3, 1));
Panel recPanel = new Panel();
recPanel.setLayout(new GridLayout(2, 1));
recPanel.add(new Label("Recipient"));
recipientField = new TextField("zffan");
// 作 者 邮 件 服 务 器 用 户 名
recPanel.add(recipientField);
fields.add(recPanel);
Panel sendPanel = new Panel();
sendPanel.setLayout(new GridLayout(2, 1));
sendPanel.add(new Label("Sender"));
senderField = new TextField("Your Name");
// 由 读 者 填 其 用 户 名
sendPanel.add(senderField);
fields.add(sendPanel);
Panel hostPanel = new Panel();
hostPanel.setLayout(new GridLayout(2, 1));
hostPanel.add(new Label("Host"));
hostField = new TextField("YourCompany.com");
// 由 读 者 填 其 邮 件 服 务 器IP
hostPanel.add(hostField);
fields.add(hostPanel);
add("North", fields);
MsgArea = new TextArea();
add("Center", MsgArea);
add("South", new Button("SEND"));
}

public boolean handleEvent(Event e) {

if (e.id == Event.WINDOW_DESTROY)
System.exit(0);
return super.handleEvent(e);
}

public boolean action(Event e, Object arg) {

if (arg.equals("SEND"))
sendMsg(senderField.getText(),
recipientField.getText(), hostField.getText());
else
return super.action(e, arg);
return true;
}

private void sendMsg(String sender, String recipient, String senderHost) {

try { // 与 邮 件 服 务 器 通 信

Socket s = new Socket(appletSource, SMTP_PORT);
PrintStream out = new PrintStream(s.getOutputStream());
MsgArea.selectAll();
out.println("HELO " + senderHost);
//邮件服务器不认证读者所输SMTP是否正确
out.println("MAIL FROM: " + sender);
out.println("RCPT TO: " + recipient);
out.println("DATA");
out.println(MsgArea.getSelectedText());
out.println(".");
out.println("QUIT");
}

catch(Exception e) { System.out.println("Error " + e); }
}
} //Javamail

以 上 程 序 在Win95, JDK1.1.2, Hotjava Browser 1.0 环 境 下 调 试 通 过。 有 兴 趣 的 读 者 还 可 加 上 与SMTP 服 务 器 通 信 时 的 出 错 例 程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是一个画正弦曲线的Java Applet示例代码: ```java import java.awt.*; import java.applet.*; public class SineCurve extends Applet { public void paint(Graphics g) { int x,y; double sinValue; g.setColor(Color.red); for(x=0; x<getWidth(); x++) { sinValue = Math.sin((double)x/180*Math.PI); y = (int)(getHeight()/2 - 50*sinValue); g.drawLine(x, y, x+1, y); } } } ``` 在这个Applet,我们使用了Math.sin()函数来计算正弦值,并将其绘制在画布上。可以在HTML文件嵌入该Applet以显示正弦曲线。 ### 回答2: 编写一个applet,可以在applet绘制一个正弦曲线。 首先,在Java的applet,我们需要使用Graphics类来绘制图形。以下是一个简单的示例代码: ```java import java.applet.Applet; import java.awt.Graphics; public class SinCurveApplet extends Applet { public void paint(Graphics g) { int width = getWidth(); // 获取applet的宽度 int height = getHeight(); // 获取applet的高度 int cx = width / 2; // 曲线的心点x坐标 int cy = height / 2; // 曲线的心点y坐标 int amplitude = height / 4; // 正弦曲线的振幅 int period = width / 4; // 正弦曲线一个周期的长度 g.drawLine(0, cy, width, cy); // 绘制x轴 for (int x = 0; x < width; x++) { double angle = (double) (x - cx) / period * 2 * Math.PI; // 计算当前x点对应的角度值 int y = (int) (cy - amplitude * Math.sin(angle)); // 根据正弦函数计算y坐标 g.drawLine(x, y, x, y); // 绘制当前点 } } } ``` 在上述代码,我们首先获取applet的宽度和高度,然后根据这些参数计算出曲线的心点坐标、振幅和周期。接下来,我们使用for循环遍历所有的x点,并根据正弦函数计算出对应的y坐标。最后,使用drawLine方法绘制曲线上的每个点。 在HTML文件使用这个applet时,可以使用如下的代码: ```html <applet code="SinCurveApplet.class" width="500" height="300"></applet> ``` 上述的代码,SinCurveApplet.class表示编译后的applet类的文件名,width和height属性可以调整applet的宽高。将上述的Java代码保存为SinCurveApplet.java并进行编译后,将生成SinCurveApplet.class文件,将这两个文件一起放在同一个目录下,并在HTML文件引用SinCurveApplet.class文件即可加载和显示绘制的正弦曲线applet。 ### 回答3: 要编写一个applet来画出一个正弦曲线,可以使用Java的applet类和绘图类Graphics来实现。首先,需要在applet的init()方法设置画布的大小和背景色。然后,可以在applet的paint()方法使用Graphics对象来绘制正弦曲线。 具体步骤如下: 1. 在applet的init()方法设置画布的大小和背景色: ```java public void init() { setSize(400, 400); setBackground(Color.WHITE); } ``` 2. 在applet的paint()方法使用Graphics对象来绘制正弦曲线: ```java public void paint(Graphics g) { int width = getWidth(); int height = getHeight(); int midY = height / 2; g.setColor(Color.BLACK); // 绘制坐标轴 g.drawLine(0, midY, width, midY); // x轴 g.drawLine(0, 0, 0, height); // y轴 // 绘制正弦曲线 int amplitude = 100; // 振幅 int period = 100; // 周期 for (int x = 0; x < width; x++) { int y = midY + (int) (amplitude * Math.sin((double) x / period)); g.drawLine(x, y, x + 1, y); // 绘制一个像素点 } } ``` 在上述代码,我们首先获取了画布的宽度、高度和间点的y坐标。然后,设置绘图颜色为黑色,并绘制x轴和y轴。接下来,使用for循环遍历画布的横坐标,根据正弦函数的公式计算出对应的纵坐标,并使用drawLine方法绘制一个像素点。循环结束后,整个正弦曲线就会被画出来了。 最后,可以在HTML页面使用applet标签来嵌入这个applet并运行它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

autice

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值