2015-09-08 5 views
2

У меня есть элемент управления JSpinner, который имеет случайные значения. Значения могут быть дублирующими. Например:Java - Как я могу получить индекс выбранного элемента JSpinner?

{1, 2, 9, 3, 4, 5, 9, 6, 7, 3, 2, 9}

Если пользователь выбрал значение 9, то как я могу отличить его от других 9s в JSpinner, потому что моя программа будет делать некоторые вычисления в зависимости от индекса выбранного 9.

Мое решение - получить индекс выбранного элемента в JSpinner, чтобы узнать какой именно. Является ли это возможным ?

+2

@cesarluis Этот ответ не будет работать. В этом примере, если значение равно 9, возвращаемый индекс всегда будет равен 2, даже если выбран индекс 7 или индекс 11. – markbernard

+1

Либо используйте JList вместо этого, либо вы получите 'SpinerModel' и продолжаете называть' getNextValue' и сравниваете результаты с исходным списком, пока не выясните, где вы находитесь. – markbernard

+0

@markbernard .. Ты прав. Предлагаемое решение для cesarluis всегда будет возвращать индекс первого 9. Я думал об использовании getNextValue & getPreviousValue, но он будет настолько сложным. Надеюсь, что есть более простой способ. – Brad

ответ

0

jspiner.getValue() предоставит вам значение выбранного элемента, вы можете делать все, что с ним, для чего вам нужно знать его индекс? форму Java-документа для SpinnerModel

Модель не поддерживает индексированный случайный доступ к элементам последовательности. Доступны только три значения последовательности: текущий, следующий и предыдущий.

0

После проб и ошибок я нашел лучшее решение для своего дела, и я поделился им здесь на всякий случай, если у кого-то был такой же сценарий. Я добавил пробелы перед каждым дублированным номером в счетчике, чтобы узнать, какой из них является таковым, и сделать каждое значение в счетчике уникальным, поэтому первые 9 будут {пробел + 9}, а второй 9 будет {2 пробела + 9}, а третий - {3 пробела + 9}.

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