Система запуска сервисов в выпадающем списке

1

Чтобы увидеть запущенные службы, я делаю это:

try {
    Process p = Runtime.getRuntime().exec("net start");
    BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String text;

    while ((text=in.readLine())!=null){
        System.out.println(text);
    }
    in.close();
} catch (IOException ex) {
    Logger.getLogger(GestionProcesos.class.getName()).log(Level.SEVERE, null, ex);
}

Теперь, используя GUI-конструктор из NetBeans, я хочу разместить каждую результирующую строку как элемент comboBox, как мне сделать comboBox.setModel для отображения списка запущенных сервисов?

  • 0
    Что вы пробовали? Какой шаг вы застряли? Вы знаете, как получить строки, правильно? Вы понимаете, как поместить строки в коллекцию, верно? Затем в учебном пособии по JComboBox показано, как создать модель, и где вы застряли?
Теги:
combobox
swing

1 ответ

2
Лучший ответ
  1. Создайте объект модели DefaultComboBoxModel<String>.
  2. В своем цикле while выше поместите строки, полученные в модель, с помощью метода addElement(E anObject).
  3. Создайте свой JComboBox с помощью своей модели.
  4. Будьте осторожны, чтобы ваш код подчинялся правилам Swing для потоковой передачи, что означает, что чтение процесса и потока отключено от EDT, но все вызовы Swing запускаются на EDT.

Все готово.

Возможные проблемы:

Если вы хотите, чтобы этот список менялся во время выполнения с добавлением и удалением сервисов, это может быть сложно, но с SwingWorker вы можете более легко перемещаться по проблемам параллелизма Swing.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню