You can't. This is by design. You can allocate a new byte buffer and write the overflowing data to that. You can keep the ByteBuffers in a LinkedList (which will grow as needed), and you can even spool off the old ones to disk, if you're running out of memory to allocate new ones. If each ByteBuffer is the same size, trivial equations will let you access it as if it where just the one buffer, but you lose the ability to use slicing or compacting, or any of the cool things you can do with one of those. :)
But like people have said over and over again, it depends on what you need it for.