JTabbedPane sends ChangeEvent's when a selected tab changes. In particular, when the JTabbedPane is empty and you add a first tab the JTabbedPane will send the ChangeEvent meaning that selected tab changed from null to something.
You need to either take into account that first change event, or to add the ChangeListener after you added the first tab into the JTabbedPane.