2015-04-19 2 views
1

В моей форме Я создал JSpinner и элементы JComboBox. В зависимости от изменения JComboBox я должен использовать различные модели Spinner. Так что в слушателе ComboBox я пишу spinner = new JSpinner (newModel), но это ничего не изменилось по форме. Как воссоздать элемент, чтобы увидеть разницу?Как воссоздать элемент (SWING)?

 // Create default Spinner 
     count = new JSpinner(); 

     // Trying to replace spinner 
     product.addActionListener(e -> { 
      JComboBox source = (JComboBox) e.getSource(); 
      String selectedItem = (String) source.getSelectedItem(); 
      ... 
      SpinnerNumberModel numberModel = getNewNumberModel(...) 
      count = new JSpinner(numberModel); 
      count.setModel(numberModel); 
      // repaint(); revalidate() - also don't working 
     }); 

ответ

2

Вы не должны перераспределять счетчик каждый раз. Просто замените его модель. Вы назначаете новый экземпляр JSpinner в своем прослушивателе действий и меняете его модель. Но этот новый экземпляр не является частью вашей панели и не отображается. Удалите count = new JSpinner(numberModel); из прослушивателя действий. И измените модель существующего счетчика.

Смежные вопросы