Предупреждение JComboBox, предотвращающее открытие страницы дизайна в eclipse

OK Я использую eclipse и его редактор GUI, и у меня есть такая строка:

public static String[] blah = {"Blah", "Blah", "Blah", "Blah"};

и JComboBox, как это:

JComboBox comboBox = new JComboBox(blah);
    comboBox.setBounds(10, 56, 312, 37);
    contentPane.add(comboBox);

combobox использует строку выше, чтобы получить свои данные, но когда я ввожу "БЛА" в combobox, у него есть эта ошибка...

Type safety: The constructor JComboBox(Object[]) belongs to the raw type JComboBox.    References to generic type JComboBox<E> should be parameterized

он работает, если я запускаю его, потому что это только предупреждение, но это раздражает, потому что он не позволит мне войти в режим дизайна, если я не сделаю это комментарий. режим конструктора дает ошибка...

INVALID SOURCE. No Constructor Binding. ---  new JComboBox(locations) is not valid source for component creation, it references not existing constructor. 

поэтому я хотел бы знать, есть ли другой способ преодолеть эту проблему

3 ответов


проблема в том, что WindowBuilder не может обрабатывать версию generics JComboBox<E> whitch является новым в jre7.

У меня была та же проблема и починил его путем добавления jre6 под Настройки - > Java - > Установленные JREs и обеспечение того, чтобы проект использовал среду выполнения 'JavaSE-1.6' под проект - > свойства - > компилятор Java.

поэтому, если вам не нужна java 7, Вы можете легко исправить это, иначе вы нужно дождаться Windowbuilder для поддержки версии generics.


// comboBoxTraceModeSelection = new JComboBox<TraceMode>(TraceMode.values());
   comboBoxTraceModeSelection = new JComboBox<TraceMode>();
   comboBoxTraceModeSelection.setModel(new DefaultComboBoxModel<TraceMode>
(TraceMode.values()));

это обходной путь для использования перечисления в JComboBox (с WindowBuilder на Eclipse 3.7.2 для java 6). Да, похоже, это связано с Java-генераторами для объектов, которые немного необычны (перечисление, строка и т. д.). TraceMode-это пользовательское перечисление. Прокомментированная строка вызывает ту же ошибку, что и исходный плакат. Это проблема WindowBuilder, а не проблема Eclipse или Java.


Я думаю, что OP уже получил полезный ответ, так как прошло 3 года :D однако, надеюсь, вы найдете это полезным:

на самом деле я не знаю, почему мы получаем эту ошибку, но u может легко избавиться от нее, разделив создание ComboBoxModel и создание JComboBox.

определение сначала модели (например, с помощью DefaultComboBoxModel), добавление необходимых элементов, а затем передача вышеуказанной модели конструктору JComboBox, не приводит к этой ошибке и работает штраф.

Э. Г.

public static String[] blah = {"Blah", "Blah", "Blah", "Blah"};

DefaultComboBoxModel<String> comboModel = new DefaultComboBoxModel<String>(blah);

JComboBox comboBox = new JComboBox(comboModel);`

довольно лаконично и читабельно, я думаю:)