I would like to maintain the null first element rather than have an empty string
What is the point of this? Why do you need an empty or null object?
Anyway, I doubt it can be done, since using the arrow keys will ultimately result in the comboBox setSelectedItem(...) method to be invoked. From the API for this method:
anObject - the list object to select; use null to clear the selection
So every time you try to select the null item the selection gets set back to -1.
Try changing your code to:
and you will see the selection cycle through "test1", "test2" and nothing.
as the code is already widely used.
Its better to have a proper design then to attempt to work around something.