Это не должен быть цикл.
public static Object showInputDialog(Component parentComponent,
Object message,
String title,
int messageType,
Icon icon,
Object[] selectionValues,
Object initialSelectionValue)
Вы уверены, что передаете selectionValues массив объектов и initialSelectionValue Object?
Какой тип данных? Предполагая, что data [0] является массивом, попробуйте
JOptionPane.showInputDialog(null, "Select Code",
"Code", JOptionPane.QUESTION_MESSAGE, null, data, data[0]);
Можете ли вы сказать, какой именно тип ваших данных? Этот пример из JDK
Object[] possibleValues = { "First", "Second", "Third" };
Object selectedValue = JOptionPane.showInputDialog(null,
"Choose one", "Input",
JOptionPane.INFORMATION_MESSAGE, null,
possibleValues, possibleValues[0]);
отлично работает для меня.