All the data has to be sorted automatically while it is being added into the stack.
If the stack objects need to be sorted then it is not called as stack anymore and implementing a stack for that purpose is unnecessary. Just use an ArrayList or Vector and while inserting an element search for the correct position and call insert method.
If there are some performance issues, you might search for a better data structure since, in my way, insertion can be slow when lots of data exist in a vector.