package net.codejava.swing.mail;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Properties;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import net.codejava.swing.JFilePicker;
/**
* A Swing application that allows sending e-mail messages from a SMTP server.
* @author www.codejava.net
*
*/
public class SwingEmailSender extends JFrame {
private ConfigUtility configUtil = new ConfigUtility();
private JMenuBar menuBar = new JMenuBar();
private JMenu menuFile = new JMenu(\"File\");
private JMenuItem menuItemSetting = new JMenuItem(\"Settings..\");
private JLabel labelTo = new JLabel(\"To: \");
private JLabel labelSubject = new JLabel(\"Subject: \");
private JTextField fieldTo = new JTextField(30);
private JTextField fieldSubject = new JTextField(30);
private JButton buttonSend = new JButton(\"SEND\");
private JFilePicker filePicker = new JFilePicker(\"Attached\", \"Attach File...\");
private JTextArea textAreaMessage = new JTextArea(10, 30);
private GridBagConstraints constraints = new GridBagConstraints();
public SwingEmailSender() {
super(\"Swing E-mail Sender Program\");
// set up layout
setLayout(new GridBagLayout());
constraints.anchor = GridBagConstraints.WEST;
constraints.insets = new Insets(5, 5, 5, 5);
setupMenu();
setupForm();
pack();
setLocationRelativeTo(null); // center on screen
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void setupMenu() {
menuItemSetting.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
SettingsDialog dialog = new SettingsDialog(SwingEmailSender.this, configUtil);
dialog.setVisible(true);
}
});
menuFile.add(menuItemSetting);
menuBar.add(menuFile);
setJMenuBar(menuBar);
}
private void setupForm() {
constraints.gridx = 0;
constraints.gridy = 0;
add(labelTo, constraints);
constraints.gridx = 1;
constraints.fill = GridBagConstraints.HORIZONTAL;
add(fieldTo, constraints);
constraints.gridx = 0;
constraints.gridy = 1;
add(labelSubject, constraints);
constraints.gridx = 1;
constraints.fill = GridBagConstraints.HORIZONTAL;
add(fieldSubject, constraints);
constraints.gridx = 2;
constraints.gridy = 0;
constraints.gridheight = 2;
constraints.fill = GridBagConstraints.BOTH;
buttonSend.setFont(new Font(\"Arial\", Font.BOLD, 16));
add(buttonSend, constraints);
buttonSend.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
buttonSendActionPerformed(event);
}
});
constraints.gridx = 0;
constraints.gridy = 2;
constraints.gridheight = 1;
const.