Language Translator

Showing posts with label Java Code. Show all posts
Showing posts with label Java Code. Show all posts

Java Equals and Java hasCode functions for deep Comparasion


import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;
 
public class EqualsTest implements  Comparator
{
    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public Integer getAge()
    {
        return age;
    }

    public void setAge(Integer age)
    {
        this.age = age;
    }

    private String    name;
    private Integer    age;

    public EqualsTest()
    {
        this.name = "Ravinder";
        this.age = 0;
    }

    public EqualsTest(String name, Integer age)
    {
        this.name = name;
        this.age = age;

    }

    @Override
    public String toString()
    {
        StringBuffer sb = new StringBuffer();

        sb.append("My name is " + this.getName() + " having an age "
                + this.getAge());

        return sb.toString();

    }

    public static void main(String p[])
    {
        EqualsTest equalsTest = new EqualsTest();

        EqualsTest equalsTest1 = new EqualsTest("Ravinder1", 1);

        EqualsTest equalsTest2 = new EqualsTest("Ravinder2", 2);

        EqualsTest equalsTest3 = new EqualsTest("Ravinder3", 3);

        EqualsTest equalsTest4 = new EqualsTest("Ravinder4", 4);

        EqualsTest equalsTest5 = new EqualsTest("Ravinder5", 5);

        EqualsTest equalsTest6 = new EqualsTest("Ravinder6", 6);

        EqualsTest equalsTest7 = new EqualsTest("Ravinder7", 7);

        EqualsTest equalsTest8 = new EqualsTest("Ravinder8", 8);

        EqualsTest equalsTest9 = new EqualsTest("Ravinder9", 9);

        // System.out.println(equalsTest);
        // System.out.println(equalsTest1);

        // System.out.println("Shallow comparasion ==>"
        // + (equalsTest == equalsTest1));
        // System.out.println("Deep comparasion ==>"
        // + equalsTest.equals(equalsTest1));

        // System.out.println(equalsTest.hashCode());
        // System.out.println(equalsTest1.hashCode());

        Set hashSet = new HashSet(10);

        hashSet.add(equalsTest);
        hashSet.add(equalsTest1);
        hashSet.add(equalsTest2);
        hashSet.add(equalsTest3);
        hashSet.add(equalsTest4);
        hashSet.add(equalsTest5);
        hashSet.add(equalsTest6);
        hashSet.add(equalsTest7);
        hashSet.add(equalsTest8);
        hashSet.add(equalsTest9);

        Set linkedHashSet = new LinkedHashSet(10);

        linkedHashSet.add(equalsTest);
        linkedHashSet.add(equalsTest1);
        linkedHashSet.add(equalsTest2);
        linkedHashSet.add(equalsTest3);
        linkedHashSet.add(equalsTest4);
        linkedHashSet.add(equalsTest5);
        linkedHashSet.add(equalsTest6);
        linkedHashSet.add(equalsTest7);
        linkedHashSet.add(equalsTest8);
        linkedHashSet.add(equalsTest9);

        Set treeSet = new TreeSet(new EqualsTest());

        treeSet.add(equalsTest);
        treeSet.add(equalsTest1);
        treeSet.add(equalsTest2);
        treeSet.add(equalsTest3);
        treeSet.add(equalsTest4);
        treeSet.add(equalsTest5);
        treeSet.add(equalsTest6);
        treeSet.add(equalsTest7);
        treeSet.add(equalsTest8);
        treeSet.add(equalsTest9);

        if (hashSet.contains(equalsTest))
        {
            System.out.println("The object already exist in the set");

        }
        else
        {
            hashSet.add(equalsTest);
            System.out.println("The object already exist in the set");
        }

        System.out.println("The actual size of the hashset is---> "
                + hashSet.size());

        System.out.println("The values in the hashset are -->"
                + hashSet.toString());

        System.out.println("The actual size of the linkedHashSet is---> "
                + linkedHashSet.size());

        System.out.println("The values in the linkedHashSet are -->"
                + linkedHashSet.toString());

        System.out.println("The actual size of the treeSet is---> "
                + treeSet.size());

        System.out.println("The values in the treeSet are -->"
                + treeSet.toString());
    }

    @Override
    public int hashCode()
    {
        int hashcode = this.getAge().hashCode() + this.getName().hashCode();

        return hashcode;
    }

    @Override
    public boolean equals(Object obj)
    {
        boolean isEqual = false;

        if (obj == null)
        {
            return false;
        }

        if (this.getClass() == obj.getClass())
        {
            EqualsTest equalsTest = (EqualsTest) obj;

            if (this.getName().equals(equalsTest.getName())
                    && (this.getAge().equals(equalsTest.getAge())))
            {
                return true;
            }

        }
        return isEqual;

    }

    // this function is declare in Comparator interface, need to sort the
    // collection, comparator instance must be given to TreeSet constructor.
    @Override
    public int compare(Object o1, Object o2)
    {
        EqualsTest equalsTestObj1 = (EqualsTest) o1;

        EqualsTest equalsTestObj2 = (EqualsTest) o2;

        if (equalsTestObj1.getAge() > equalsTestObj2.getAge())
        {
            return 1;
        }
        else if (equalsTestObj1.getAge() < equalsTestObj2.getAge())
        {
            return -1;
        }
        else
            return 0;
    }

}

Java Code for Connection Pooling / Connection Pooling in Java

public class MyConnection {

private boolean inUse ;

public MyConnection() {
this.inUse = false;
}

public void setInUse()
{
this.inUse = true;
}

public void setNotInUse()
{
this.inUse = false;
}


public boolean isInUse() {
return inUse;
}

}


import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;

public class MyconnectionPool
{

private static HashSet connSet;
private static final int defaultSize = 10;
private int maxPoolSize = 10;
private static MyconnectionPool myconnectionPool;

static
{

connSet = (HashSet) Collections
.synchronizedSet(new HashSet(defaultSize));

int connCounter = 0;

while (connCounter < defaultSize)
{
connSet.add(new MyConnection());
}

}

public static MyconnectionPool getInstance()
{

if (myconnectionPool == null)
{
myconnectionPool = new MyconnectionPool();
}

return myconnectionPool;
}

public MyConnection acquireConnection() throws Exception
{

if (connSet != null)
{
if (connSet.isEmpty())
{
throw new Exception("Connection Pool is empty");
}
else
{
synchronized (connSet)
{

Iterator connIterator = connSet.iterator();

MyConnection myConn = null;

while (connIterator.hasNext())
{
myConn = connIterator.next();

if (myConn.isInUse())
{
continue;
}
else
{
return myConn;
}
}

if (connSet.size() < maxPoolSize)
{
myConn = new MyConnection();

myConn.setInUse();

connSet.add(myConn);

return myConn;
}
else
{
throw new Exception("Connection Pool is full ");
}

}

}
}
else
{
throw new Exception("Connection Pool is not initialised");
}
}
}

SWING PROGRESS MONITOR (JPROGRESSMONITOR)

package progressmonitorexample;

import javax.swing.*;
import java.awt.event.*;
import java.beans.*;
import java.io.*;
import java.awt.Insets;
import java.awt.BorderLayout;
import java.util.*;
import java.util.concurrent.*;

public class ProgressMonitorExample extends JPanel implements ActionListener, PropertyChangeListener {
private static final int DEFAULT_WIDTH = 700;
private static final int DEFAULT_HEIGHT = 350;
private JButton copyButton;
private JTextArea console;
private ProgressMonitor progressMonitor;
private CopyFiles operation;

public static void main(String[] args) {
// tell the event dispatch thread to schedule the execution
// of this Runnable (which will create the example app GUI) for a later time
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// create example app window
JFrame frame = new JFrame("Progress Monitor Example");
// application will exit on close
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

// create example app content pane
// ProgressMonitorExample constructor does additional GUI setup
JComponent contentPane = new ProgressMonitorExample();
contentPane.setOpaque(true);
frame.setContentPane(contentPane);

// display example app window
frame.setVisible(true);
}
});
}

public ProgressMonitorExample() {
// set up the copy files button
copyButton = new JButton("Copy Files");
copyButton.addActionListener(this);
JPanel buttonPanel = new JPanel();
buttonPanel.add(copyButton);

// set up the console for display of operation output
console = new JTextArea(15,60);
console.setMargin(new Insets(5,5,5,5));
console.setEditable(false);
add(new JScrollPane(console), BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
}

public void actionPerformed(ActionEvent event) {
// make sure there are files to copy
File srcDir = new File("in");
if (srcDir.exists() && (srcDir.listFiles() != null && srcDir.listFiles().length > 0)) {
// set up the destination directory
File destDir = new File("out");
// create the progress monitor
progressMonitor = new ProgressMonitor(ProgressMonitorExample.this,
"Operation in progress...",
"", 0, 100);
progressMonitor.setProgress(0);

// schedule the copy files operation for execution on a background thread
operation = new CopyFiles(srcDir, destDir);
// add ProgressMonitorExample as a listener on CopyFiles;
// of specific interest is the bound property progress
operation.addPropertyChangeListener(this);
operation.execute();
// we're running our operation; disable copy button
copyButton.setEnabled(false);
} else {
console.append("The sample application needs files to copy."
+ " Please add some files to the in directory"
+ " located at the project root.");
}
}

// executes in event dispatch thread
public void propertyChange(PropertyChangeEvent event) {
// if the operation is finished or has been canceled by
// the user, take appropriate action
if (progressMonitor.isCanceled()) {
operation.cancel(true);
} else if (event.getPropertyName().equals("progress")) {
// get the % complete from the progress event
// and set it on the progress monitor
int progress = ((Integer)event.getNewValue()).intValue();
progressMonitor.setProgress(progress);
}
}

class CopyFiles extends SwingWorker {
private static final int PROGRESS_CHECKPOINT = 10000;
private File srcDir;
private File destDir;

CopyFiles(File src, File dest) {
this.srcDir = src;
this.destDir = dest;
}

// perform time-consuming copy task in the worker thread
@Override
public Void doInBackground() {
int progress = 0;
// initialize bound property progress (inherited from SwingWorker)
setProgress(0);
// get the files to be copied from the source directory
File[] files = srcDir.listFiles();
// determine the scope of the task
long totalBytes = calcTotalBytes(files);
long bytesCopied = 0;

while (progress < 100 && !isCancelled()) {
// copy the files to the destination directory
for (File f : files) {
File destFile = new File(destDir, f.getName());
long previousLen = 0;

try {
InputStream in = new FileInputStream(f);
OutputStream out = new FileOutputStream(destFile);
byte[] buf = new byte[1024];
int counter = 0;
int len;

while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
counter += len;
bytesCopied += (destFile.length() - previousLen);
previousLen = destFile.length();
if (counter > PROGRESS_CHECKPOINT || bytesCopied == totalBytes) {
// get % complete for the task
progress = (int)((100 * bytesCopied) / totalBytes);
counter = 0;
CopyData current = new CopyData(progress, f.getName(),
getTotalKiloBytes(totalBytes),
getKiloBytesCopied(bytesCopied));

// set new value on bound property
// progress and fire property change event
setProgress(progress);

// publish current progress data for copy task
publish(current);
}
}
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

return null;
}

// process copy task progress data in the event dispatch thread
@Override
public void process(List data) {
if(isCancelled()) { return; }
CopyData update = new CopyData(0, "", 0, 0);
for (CopyData d : data) {
// progress updates may be batched, so get the most recent
if (d.getKiloBytesCopied() > update.getKiloBytesCopied()) {
update = d;
}
}

// update the progress monitor's status note with the
// latest progress data from the copy operation, and
// additionally append the note to the console
String progressNote = update.getKiloBytesCopied() + " of "
+ update.getTotalKiloBytes() + " kb copied.";
String fileNameNote = "Now copying " + update.getFileName();

if (update.getProgress() < 100) {
progressMonitor.setNote(progressNote + " " + fileNameNote);
console.append(progressNote + "\n" + fileNameNote + "\n");
} else {
progressMonitor.setNote(progressNote);
console.append(progressNote + "\n");
}
}

// perform final updates in the event dispatch thread
@Override
public void done() {
try {
// call get() to tell us whether the operation completed or
// was canceled; we don't do anything with this result
Void result = get();
console.append("Copy operation completed.\n");
} catch (InterruptedException e) {

} catch (CancellationException e) {
// get() throws CancellationException if background task was canceled
console.append("Copy operation canceled.\n");
} catch (ExecutionException e) {
console.append("Exception occurred: " + e.getCause());
}
// reset the example app
copyButton.setEnabled(true);
progressMonitor.setProgress(0);
}

private long calcTotalBytes(File[] files) {
long tmpCount = 0;
for (File f : files) {
tmpCount += f.length();
}
return tmpCount;
}

private long getTotalKiloBytes(long totalBytes) {
return Math.round(totalBytes / 1024);
}

private long getKiloBytesCopied(long bytesCopied) {
return Math.round(bytesCopied / 1024);
}
}

class CopyData {
private int progress;
private String fileName;
private long totalKiloBytes;
private long kiloBytesCopied;

CopyData(int progress, String fileName, long totalKiloBytes, long kiloBytesCopied) {
this.progress = progress;
this.fileName = fileName;
this.totalKiloBytes = totalKiloBytes;
this.kiloBytesCopied = kiloBytesCopied;
}

int getProgress() {
return progress;
}

String getFileName() {
return fileName;
}

long getTotalKiloBytes() {
return totalKiloBytes;
}

long getKiloBytesCopied() {
return kiloBytesCopied;
}
}
}

READING XML THROUGH JAVASCRIPT

READING XML THROUGH JAVASCRIPT

XML.load = function(url) {
var xmldoc = XML.newDocument();
xmldoc.async = false;
xmldoc.load(url);
return xmldoc;
};
XML.newDocument = function(rootTagName, namespaceURL) {
if (!rootTagName) rootTagName = "";
if (!namespaceURL) namespaceURL = "";
if (document.implementation && document.implementation.createDocument) {
// This is the W3C standard way to do it
return document.implementation.createDocument(namespaceURL,
rootTagName, null);
}
else { // This is the IE way to do it
// Create an empty document as an ActiveX object
// If there is no root element, this is all we have to do
var doc = new ActiveXObject("MSXML2.DOMDocument");

// If there is a root tag, initialize the document
if (rootTagName) {
// Look for a namespace prefix
var prefix = "";
var tagname = rootTagName;
var p = rootTagName.indexOf(':');


if (p != -1) {
prefix = rootTagName.substring(0, p);
tagname = rootTagName.substring(p+1);
}

// If we have a namespace, we must have a namespace prefix
// If we don't have a namespace, we discard any prefix
if (namespaceURL) {
if (!prefix) prefix = "a0"; // What Firefox uses
}
else prefix = "";

// Create the root element (with optional namespace) as a
// string of text
var text = "<" + (prefix?(prefix+":"):"") + tagname +
(namespaceURL
?(" xmlns:" + prefix + '="' + namespaceURL +'"')
:"") +
"/>";
// And parse that text into the empty document
doc.loadXML(text);
}
return doc;
}
};



file: readxml.js
function readXmlFile() {
url = 'http://rorbuilder.info/pl/test123';

doc = XML.load(url);
alert(doc.documentElement.firstChild.nextSibling.firstChild.nodeValue);
}

SWING JTREE EXAMPLE

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;

public class JTreeDemo
{
public static void main(String [] arg)
{
JTreeDemo obj = new JTreeDemo();
}

public JTreeDemo()
{
JFrame frame = new JFrame("JTree Demo");
Container c = frame.getContentPane();
c.setLayout( new BorderLayout() );

//Create top node of a tree
final DefaultMutableTreeNode top = new DefaultMutableTreeNode("Course");

//Create a subtree UG
final DefaultMutableTreeNode UG = new DefaultMutableTreeNode("UG");
top.add(UG);
final DefaultMutableTreeNode a1 = new DefaultMutableTreeNode("B.E");
UG.add(a1);
final DefaultMutableTreeNode a2 = new DefaultMutableTreeNode("B.C.A");
UG.add(a2);
final DefaultMutableTreeNode a3 = new DefaultMutableTreeNode("B.Sc");
UG.add(a3);
final DefaultMutableTreeNode a4 = new DefaultMutableTreeNode("B.Com");
UG.add(a4);
final DefaultMutableTreeNode a5 = new DefaultMutableTreeNode("B.A");
UG.add(a5);



//Create a subtree PG
final DefaultMutableTreeNode PG = new DefaultMutableTreeNode("PG");
top.add(PG);
final DefaultMutableTreeNode b1 = new DefaultMutableTreeNode("M.E");
PG.add(b1);
final DefaultMutableTreeNode b2 = new DefaultMutableTreeNode("M.C.A");
PG.add(b2);
final DefaultMutableTreeNode b3 = new DefaultMutableTreeNode("M.Sc");
PG.add(b3);
final DefaultMutableTreeNode b4 = new DefaultMutableTreeNode("M.Com");
PG.add(b4);
final DefaultMutableTreeNode b5 = new DefaultMutableTreeNode("M.A");
PG.add(b5);

//Creating tree
final JTree tree = new JTree(top);

int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
final JScrollPane jsp = new JScrollPane(tree,v,h);
c.add(jsp,BorderLayout.CENTER );

final JTextField text = new JTextField("",20);
c.add(text,BorderLayout.SOUTH);

tree.addMouseListener( new MouseAdapter()
{
public void mouseClicked( MouseEvent me)
{
TreePath tp = tree.getPathForLocation(me.getX(),me.getY() );
if( tp != null )
text.setText(tp.toString() );
else
text.setText("");
}
}
);

frame.setSize(300,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

SWING JSLIDER EXAMPLE

E

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;

public class JSliderDemo
{
public static void main(String[] a)
{

JFrame frame = new JFrame("JSlider Demo");
Container c = frame.getContentPane();
c.setLayout( new FlowLayout() );

final JTextField text = new JTextField("A picture worth more than thousands words" );
text.setFont(new Font("Serif",Font.PLAIN,30));
text.setEditable(false);

final JSlider fontSizeSlider = new JSlider(SwingConstants.HORIZONTAL,0,45,30);
fontSizeSlider.setMajorTickSpacing(1);

fontSizeSlider.addChangeListener( new ChangeListener()
{
public void stateChanged(ChangeEvent ce)
{
int fontSize;
fontSize = fontSizeSlider.getValue();
text.setFont( new Font("Serif",Font.PLAIN,fontSize));
}
}
);


c.add(text);
c.add(fontSizeSlider);

frame.setSize(550,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

SWING TABBEDPANE EXAMPLE

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JTabbedPaneDemo
{
public static void main(String[] arg)
{
JTabbedPaneDemo obj = new JTabbedPaneDemo();
}

public JTabbedPaneDemo()
{
JFrame frame = new JFrame("Tabbed pane demo");
Container c = frame.getContentPane();


JTabbedPane jtp = new JTabbedPane();
jtp.addTab("Country", new CountryPanel() );
jtp.addTab("State", new StatePanel() );
jtp.addTab("City", new CityPanel() );

c.add(jtp);
frame.setSize(300,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

class CountryPanel extends JPanel
{
public CountryPanel()
{
String item[] = { "India", "China", "UK", "USA", "Russia" };
JComboBox combo = new JComboBox(item);
add(combo);
}
}

class StatePanel extends JPanel
{
public StatePanel()
{
JButton b1 = new JButton("Tamil Nadu");
JButton b2 = new JButton("Maharastra");
JButton b3 = new JButton("Kerala");
add(b1);
add(b2);
add(b3);
}
}


class CityPanel extends JPanel
{
public CityPanel()
{
JCheckBox b1 = new JCheckBox("Chennai");
JCheckBox b2 = new JCheckBox("Delhi");
JCheckBox b3 = new JCheckBox("Mumbai");
add(b1);
add(b2);
add(b3);
}
}

Drag And Drop using javascript


<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>


"http://www.w3.org/TR/html4/loose.dtd">




JSP Page





Click -- > Drag and Drop any item



Item #1


Item #2


Item #3


Item #4












Java Mail Code To Send EMAIL

E-Mailing Through Java Mail

* You use the JavaMail API where as JavaMail implementation providers implement the JavaMail API to give you a JavaMail client (Java JAR file). Sun gives you mail.jar which has Sun's SMTP, POP3 and IMAP client implementations along with the JavaMail API. This is sufficient to send and receive e-mail but not to read or post to newgroups which use NNTP.

Sample Code to Send E-Mail

* To compile and run, you must have mail.jar (from the JavaMail download) and activation.jar (from the JavaBeans Activation Framework download) in Java classpath.

* You need to replace email addresses and mail server with your values where noted. Username and password is generally not needed to send e-mail although your ISP may still require it to prevent spam from going through its systems.

import java.util.*;

import javax.mail.*;

import javax.mail.internet.*;

import javax.activation.*;

// Send a simple, single part, text/plain e-mail

public class TestEmail {

public static void main(String[] args) {

// SUBSTITUTE YOUR EMAIL ADDRESSES HERE!!!

String to = "vipan@vipan.com";

String from = "vipan@vipan.com";

// SUBSTITUTE YOUR ISP'S MAIL SERVER HERE!!!

String host = "smtp.yourisp.net";

// Create properties, get Session

Properties props = new Properties();

// If using static Transport.send(),

// need to specify which host to send it to

props.put("mail.smtp.host", host);

// To see what is going on behind the scene

props.put("mail.debug", "true");

Session session = Session.getInstance(props);

try {

// Instantiatee a message

Message msg = new MimeMessage(session);

//Set message attributes

msg.setFrom(new InternetAddress(from));

InternetAddress[] address = {new InternetAddress(to)};

msg.setRecipients(Message.RecipientType.TO, address);

msg.setSubject("Test E-Mail through Java");

msg.setSentDate(new Date());

// Set message content

msg.setText("This is a test of sending a " +

"plain text e-mail through Java.\n" +

"Here is line 2.");

//Send the message

Transport.send(msg);

}

catch (MessagingException mex) {

// Prints all nested (chained) exceptions as well

mex.printStackTrace();

}

}

}//End of class

Sample Code to Send Multipart E-Mail, HTML E-Mail and File Attachments

* To compile and run, you must have mail.jar (from the JavaMail download) and activation.jar (from the JavaBeans Activation Framework download) in Java classpath.

* You need to replace email addresses and mail server with your values where noted.

* This sample code has debugging turned on ("mail.debug") to see what is going on behind the scenes in JavaMail code.

import java.util.*;

import java.io.*;

import javax.mail.*;

import javax.mail.internet.*;

import javax.activation.*;

public class SendMailUsage {

public static void main(String[] args) {

// SUBSTITUTE YOUR EMAIL ADDRESSES HERE!!!

String to = "you@yourisp.net";

String from = "you@yourisp.net";

// SUBSTITUTE YOUR ISP'S MAIL SERVER HERE!!!

String host = "smtpserver.yourisp.net";

// Create properties for the Session

Properties props = new Properties();

// If using static Transport.send(),

// need to specify the mail server here

props.put("mail.smtp.host", host);

// To see what is going on behind the scene

props.put("mail.debug", "true");

// Get a session

Session session = Session.getInstance(props);

try {

// Get a Transport object to send e-mail

Transport bus = session.getTransport("smtp");

// Connect only once here

// Transport.send() disconnects after each send

// Usually, no username and password is required for SMTP

bus.connect();

//bus.connect("smtpserver.yourisp.net", "username", "password");

// Instantiate a message

Message msg = new MimeMessage(session);

// Set message attributes

msg.setFrom(new InternetAddress(from));

InternetAddress[] address = {new InternetAddress(to)};

msg.setRecipients(Message.RecipientType.TO, address);

// Parse a comma-separated list of email addresses. Be strict.

msg.setRecipients(Message.RecipientType.CC,

InternetAddress.parse(to, true));

// Parse comma/space-separated list. Cut some slack.

msg.setRecipients(Message.RecipientType.BCC,

InternetAddress.parse(to, false));

msg.setSubject("Test E-Mail through Java");

msg.setSentDate(new Date());

// Set message content and send

setTextContent(msg);

msg.saveChanges();

bus.sendMessage(msg, address);

setMultipartContent(msg);

msg.saveChanges();

bus.sendMessage(msg, address);

setFileAsAttachment(msg, "C:/WINDOWS/CLOUD.GIF");

msg.saveChanges();

bus.sendMessage(msg, address);

setHTMLContent(msg);

msg.saveChanges();

bus.sendMessage(msg, address);

bus.close();

}

catch (MessagingException mex) {

// Prints all nested (chained) exceptions as well

mex.printStackTrace();

// How to access nested exceptions

while (mex.getNextException() != null) {

// Get next exception in chain

Exception ex = mex.getNextException();

ex.printStackTrace();

if (!(ex instanceof MessagingException)) break;

else mex = (MessagingException)ex;

}

}

}

// A simple, single-part text/plain e-mail.

public static void setTextContent(Message msg) throws MessagingException {

// Set message content

String mytxt = "This is a test of sending a " +

"plain text e-mail through Java.\n" +

"Here is line 2.";

msg.setText(mytxt);

// Alternate form

msg.setContent(mytxt, "text/plain");

}

// A simple multipart/mixed e-mail. Both body parts are text/plain.

public static void setMultipartContent(Message msg) throws MessagingException {

// Create and fill first part

MimeBodyPart p1 = new MimeBodyPart();

p1.setText("This is part one of a test multipart e-mail.");

// Create and fill second part

MimeBodyPart p2 = new MimeBodyPart();

// Here is how to set a charset on textual content

p2.setText("This is the second part", "us-ascii");

// Create the Multipart. Add BodyParts to it.

Multipart mp = new MimeMultipart();

mp.addBodyPart(p1);

mp.addBodyPart(p2);

// Set Multipart as the message's content

msg.setContent(mp);

}

// Set a file as an attachment. Uses JAF FileDataSource.

public static void setFileAsAttachment(Message msg, String filename)

throws MessagingException {

// Create and fill first part

MimeBodyPart p1 = new MimeBodyPart();

p1.setText("This is part one of a test multipart e-mail." +

"The second part is file as an attachment");

// Create second part

MimeBodyPart p2 = new MimeBodyPart();

// Put a file in the second part

FileDataSource fds = new FileDataSource(filename);

p2.setDataHandler(new DataHandler(fds));

p2.setFileName(fds.getName());

// Create the Multipart. Add BodyParts to it.

Multipart mp = new MimeMultipart();

mp.addBodyPart(p1);

mp.addBodyPart(p2);

// Set Multipart as the message's content

msg.setContent(mp);

}

// Set a single part html content.

// Sending data of any type is similar.

public static void setHTMLContent(Message msg) throws MessagingException {

String html = "" +<o:p></o:p></p> <p style="font-family: georgia;" class="MsoPlainText">msg.getSubject() +<o:p></o:p></p> <p style="font-family: georgia;" class="MsoPlainText">"

" +

msg.getSubject() +

"

This is a test of sending an HTML e-mail" +

" through Java.";

// HTMLDataSource is an inner class

msg.setDataHandler(new DataHandler(new HTMLDataSource(html)));

}

/*

* Inner class to act as a JAF datasource to send HTML e-mail content

*/

static class HTMLDataSource implements DataSource {

private String html;

public HTMLDataSource(String htmlString) {

html = htmlString;

}

// Return html string in an InputStream.

// A new stream must be returned each time.

public InputStream getInputStream() throws IOException {

if (html == null) throw new IOException("Null HTML");

return new ByteArrayInputStream(html.getBytes());

}

public OutputStream getOutputStream() throws IOException {

throw new IOException("This DataHandler cannot write HTML");

}

public String getContentType() {

return "text/html";

}

public String getName() {

return "JAF text/html dataSource to send e-mail only";

}

}

} //End of class

Java class/code used in extracting the thumbnail from the image.

Java class/code used in extracting the thumbnail from the image.

public class ImageClass {

public static void main(String[] args) throws Exception {

// load image from INFILE
Image image = Toolkit.getDefaultToolkit().getImage(args[0]);

MediaTracker mediaTracker = new MediaTracker(new Container());

mediaTracker.addImage(image, 0);

mediaTracker.waitForID(0);

// determine thumbnail size from WIDTH and HEIGHT

int thumbWidth = 120;
int thumbHeight =80;

System.out.println(" thumb Width = "+ thumbWidth + " thumb Height = "+thumbHeight);

int imageWidth = image.getWidth(null);

int imageHeight = image.getHeight(null);

String outputFile = args[1];

String quality = 75;

System.out.println("imageWidth " +imageHeight);

System.out.println("imageHeight " +imageWidth);

byte[] bytes = imageSizer(imageWidth,imageHeight,thumbWidth,thumbHeight,image,outputFile,quality);


Image image1= Toolkit.getDefaultToolkit().createImage(bytes);

BufferedImage bi = convert(image1);

File file1 = new File("c:\\byteImage.jpg");

BufferedOutputStream out;
try {

out = new BufferedOutputStream(new

FileOutputStream(file1));

out.write(bytes);

out.flush();

out.close();

}
catch(Exception e)
{
e.printStackTrace();
}

System.out.println("Done.");

System.exit(0);

}

private static byte[] imageSizer(int imageWidth,int imageHeight,int thumbWidth,int thumbHeight ,Image image,String outputFile,String qualityOfImage)
{

byte[] imageAsBytes = null;

for(int i = 0 ; i < 3 ; i++)
{
double thumbRatio = (double)thumbWidth / (double)thumbHeight;

System.out.println(" Image Width = "+ imageWidth + " Height = "+imageHeight);

if (i == 0)
{
double imageRatio = (double)imageWidth / (double)imageHeight;

System.out.println(" Image Ratio"+imageRatio);

if (thumbRatio < imageRatio)
{

thumbHeight = (int)(thumbWidth / imageRatio);

}
else
{
thumbWidth = (int)(thumbHeight * imageRatio);
}
}
else if(i==2)
{
thumbWidth = imageWidth ;

thumbHeight = imageHeight ;

}
else
{
thumbWidth = thumbWidth * 2 ;
thumbHeight = thumbHeight * 2 ;
}


System.out.println(" After Checking Ratio ::: thumb Width = "+ thumbWidth + " thumb Height = "+thumbHeight);

// draw original image to thumbnail image object and
// scale it to the new size on-the-fly

BufferedImage thumbImage = new BufferedImage(thumbWidth,
thumbHeight, BufferedImage.TYPE_INT_RGB);

Graphics2D graphics2D = thumbImage.createGraphics();

graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,

RenderingHints.VALUE_INTERPOLATION_BILINEAR);

graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);

// save thumbnail image to OUTFILE

BufferedOutputStream out;
try {

out = new BufferedOutputStream(new

FileOutputStream(outputFile+"_"+i+".jpg"));


JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

JPEGEncodeParam param = encoder.

getDefaultJPEGEncodeParam(thumbImage);

int quality = Integer.parseInt(qualityOfImage);

quality = Math.max(0, Math.min(quality, 100));

param.setQuality((float)quality / 100.0f, false);

encoder.setJPEGEncodeParam(param);

encoder.encode(thumbImage);

//Encoding it into a byte stream to store it in the database
File imageFile = new File(outputFile+"_"+i+".jpg");

imageAsBytes = getBytesFromFile(imageFile);

}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();

} catch (ImageFormatException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();

} catch (IOException e2)
{
// TODO Auto-generated catch block
e2.printStackTrace();
}
}//end of for loop
return imageAsBytes;
}

/**
*
* @param im
* @return
*/
public static BufferedImage convert(Image im)
{
int imgHeight=im.getHeight(null);
int imgWidth= im.getWidth(null) ;
BufferedImage bi = new BufferedImage( 1024 , 768 , BufferedImage.TYPE_INT_RGB);
Graphics bg = bi.getGraphics();
bg.drawImage(im, 0, 0, null);
bg.dispose();
return bi;
}
/**
* returns the byte array to the corresponding file
* @param file
* @return byte[]
* @throws IOException
*/
private static byte[] getBytesFromFile(File file) throws IOException
{

InputStream is = new FileInputStream(file);

ByteArrayOutputStream bytestream = new ByteArrayOutputStream();

final int DEFAULT_BUFFER_SIZE = 1024 * 4;

byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];

int count = 0;

int num = 0;

while ((num = is.read(buffer)) != -1)
{
bytestream.write(buffer, 0, num);

count += num;
}
return bytestream.toByteArray();
}

}

Code for creating and writing to a Excel Sheet

JExcel API provides various classes to create, read, write data to Excel documents at runtime. The required platform is JVM which means the code developed with JExcel can be run on Windows and Linux without any modification.

The example below creates a new document and writes data into different sheets of the new Excel document.

import java.io.*;

import jxl.*;

import java.util.*;

import jxl.Workbook;

import jxl.write.DateFormat;

import jxl.write.Number;

import jxl.write.*;

import java.text.SimpleDateFormat;

class create

{

public static void main(String[] args)

{

try

{

String filename = "input.xls";

WorkbookSettings ws = new WorkbookSettings();

ws.setLocale(new Locale("en", "EN"));

WritableWorkbook workbook =

Workbook.createWorkbook(new File(filename), ws);

WritableSheet s = workbook.createSheet("Sheet1", 0);

WritableSheet s1 = workbook.createSheet("Sheet1", 0);

writeDataSheet(s);

writeImageSheet(s1);

workbook.write();

workbook.close();

}

catch (IOException e)

{

e.printStackTrace();

}

catch (WriteException e)

{

e.printStackTrace();

}

}

private static void writeDataSheet(WritableSheet s)

throws WriteException

{

/* Format the Font */

WritableFont wf = new WritableFont(WritableFont.ARIAL,

10, WritableFont.BOLD);

WritableCellFormat cf = new WritableCellFormat(wf);

cf.setWrap(true);

/* Creates Label and writes date to one cell of sheet*/

Label l = new Label(0,0,"Date",cf);

s.addCell(l);

WritableCellFormat cf1 =

new WritableCellFormat(DateFormats.FORMAT9);

DateTime dt =

new DateTime(0,1,new Date(), cf1, DateTime.GMT);

s.adCell(dt);

/* Creates Label and writes float number to one cell of sheet*/

l = new Label(2,0,"Float", cf);

s.addCell(l);

WritableCellFormat cf2 = new WritableCellFormat(NumberFormats.FLOAT);

Number n = new Number(2,1,3.1415926535,cf2);

s.addCell(n);

n = new Number(2,2,-3.1415926535, cf2);

s.addCell(n);

/* Creates Label and writes float number upto 3

decimal to one cell of sheet */

l = new Label(3,0,"3dps",cf);

s.addCell(l);

NumberFormat dp3 = new NumberFormat("#.###");

WritableCellFormat dp3cell = new WritableCellFormat(dp3);

n = new Number(3,1,3.1415926535,dp3cell);

s.addCell(n);

/* Creates Label and adds 2 cells of sheet*/

l = new Label(4, 0, "Add 2 cells",cf);

s.addCell(l);

n = new Number(4,1,10);

s.addCell(n);

n = new Number(4,2,16);

s.addCell(n);

Formula f = new Formula(4,3, "E1+E2");

s.addCell(f);

/* Creates Label and multipies value of one cell of sheet by 2*/

l = new Label(5,0, "Multipy by 2",cf);

s.addCell(l);

n = new Number(5,1,10);

s.addCell(n);

f = new Formula(5,2, "F1 * 3");

s.addCell(f);

/* Creates Label and divide value of one cell of sheet by 2.5 */

l = new Label(6,0, "Divide",cf);

s.addCell(l);

n = new Number(6,1, 12);

s.addCell(n);

f = new Formula(6,2, "F1/2.5");

s.addCell(f);

}

private static void writeImageSheet(WritableSheet s)

throws WriteException

{

/* Creates Label and writes image to one cell of sheet*/

Label l = new Label(0, 0, "Image");

s.addCell(l);

WritableImage wi = new WritableImage(0, 3, 5, 7, new File("image.png"));

s.addImage(wi);

/* Creates Label and writes hyperlink to one cell of sheet*/

l = new Label(0,15, "HYPERLINK");

s.addCell(l);

Formula f = new Formula(1, 15,

"HYPERLINK(\"http://www.andykhan.com/jexcelapi\", "+

"\"JExcelApi Home Page\")");

s.addCell(f);

}

}