📄 mailclient.java
字号:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
public class MailClient extends Frame {
/*elements to set up a GUI*/
private Button btSend = new Button("Send");
private Button btClear = new Button("Clear");
private Button btQuit = new Button("Quit");
private Label fromLabel = new Label("From:");
private TextField fromField = new TextField("0361108@fudan.edu.cn", 40);
private Label toLabel = new Label("To:");
private TextField toField = new TextField("0361108@fudan.edu.cn", 40);
private Label subjectLabel = new Label("Subject:");
private TextField subjectField = new TextField("test", 40);
private Label messageLabel = new Label("Message:");
private TextArea messageText = new TextArea(10, 40);
public static void main(String args[]) {
try {
MailClient frame = new MailClient();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create a new MailClient window with fields for entering all
* the relevant information (From, To, Subject, and message).
*/
public MailClient() {
super("Java Mailclient");
/* Create panels for holding the fields. To make it look nice,
create an extra panel for holding all the child panels. */
Panel fromPanel = new Panel(new BorderLayout());
Panel toPanel = new Panel(new BorderLayout());
Panel subjectPanel = new Panel(new BorderLayout());
Panel messagePanel = new Panel(new BorderLayout());
fromPanel.add(fromLabel, BorderLayout.WEST);
fromPanel.add(fromField, BorderLayout.CENTER);
toPanel.add(toLabel, BorderLayout.WEST);
toPanel.add(toField, BorderLayout.CENTER);
subjectPanel.add(subjectLabel, BorderLayout.WEST);
subjectPanel.add(subjectField, BorderLayout.CENTER);
messagePanel.add(messageLabel, BorderLayout.NORTH);
messagePanel.add(messageText, BorderLayout.CENTER);
Panel fieldPanel = new Panel(new GridLayout(0, 1));
fieldPanel.add(fromPanel);
fieldPanel.add(toPanel);
fieldPanel.add(subjectPanel);
messageText.setText("test");
/* Create a panel for the buttons and add listeners to the
buttons. */
Panel buttonPanel = new Panel(new GridLayout(1, 0));
btSend.addActionListener(new SendListener());
btClear.addActionListener(new ClearListener());
btQuit.addActionListener(new QuitListener());
buttonPanel.add(btSend);
buttonPanel.add(btClear);
buttonPanel.add(btQuit);
/* Add, pack, and show. */
add(fieldPanel, BorderLayout.NORTH);
add(messagePanel, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
pack();
show();
}
class SendListener implements ActionListener {
public void actionPerformed (ActionEvent event){
System.out.println("Sending mail...");
/* check sender ,reveiver*/
if((fromField.getText()).equals("")||(toField.getText()).equals("")){
System.out.println("NEED SENDER AND RECEIVER!");
return;
}
/* format a message*/
Message message = new Message(fromField.getText(),
toField.getText(),
subjectField.getText(),
messageText.getText()
);
/*check the message*/
if(!message.isValid()){
System.out.println("THE MESSAGE IS NOT VALID!");
return;
}
/* send the messge*/
Envelope envelope = new Envelope(message);
try{
SMTPConnection connection = new SMTPConnection(envelope);
connection.send(envelope);
connection.close();
}catch(IOException error){
System.out.println("SEND FAILED..." + error);
return;
}
System.out.println("SEND SUCCESFULLY!");
}
}
/* Clear the fields on the GUI. */
class ClearListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("Clearing fields");
fromField.setText("");
toField.setText("");
subjectField.setText("");
messageText.setText("");
}
}
/* Quit. */
class QuitListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -