Перемещение элементов с помощью Jlist Java [duplicate]

ОБНОВЛЕНО # 2

Объяснение в ответе Голубого Луны.

Альтернативные решения:

Устранить echo

while read line; do
...
done <<EOT
first line
second line
third line
EOT

Добавить эхо внутри документа here-is-document

while read line; do
...
done <<EOT
$(echo -e $lines)
EOT

Запустить echo в фоновом режиме:

coproc echo -e $lines
while read -u ${COPROC[0]} line; do 
...
done

Перенаправить на дескриптор файла явно (Mind the space в < <!):

exec 3< <(echo -e  $lines)
while read -u 3 line; do
...
done

Или просто перенаправить на stdin:

while read line; do
...
done < <(echo -e  $lines)

И один для chepner (исключая echo):

arr=("first line" "second line" "third line");
for((i=0;i<${#arr[*]};++i)) { line=${arr[i]}; 
...
}

Переменная $lines может быть преобразована в массив без запуска новой под-оболочки. Символы \ и n должны быть преобразованы в некоторый символ (например, настоящий новый символ строки) и использовать переменную IFS (Internal Field Separator) для разделения строки на элементы массива. Это можно сделать так:

lines="first line\nsecond line\nthird line"
echo "$lines"
OIFS="$IFS"
IFS=$'\n' arr=(${lines//\\n/$'\n'}) # Conversion
IFS="$OIFS"
echo "${arr[@]}", Length: ${#arr[*]}
set|grep ^arr

Результат

first line\nsecond line\nthird line
first line second line third line, Length: 3
arr=([0]="first line" [1]="second line" [2]="third line")
0
задан Andrew Thompson 29 April 2014 в 08:04
поделиться

3 ответа

попробуйте что-то вроде этого. он будет работать нормально

DefaultListModel dlm = new DefaultListModel();   
jButtonActionPerformed {
    jList2.setModel(dlm);
    jList1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    for (Iterator it = jList1.getSelectedValuesList().iterator(); it.hasNext();) {
        String sel = (String) it.next();
        if (dlm.contains(sel)) {
        } else {
            dlm.addElement(sel);

        }
    }
}
0
ответ дан AdrieanKhisbe 22 August 2018 в 21:39
поделиться

, поскольку вы не показываете какой-либо код, я могу сказать следующее:

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

method for the pressed button event (){
    arrayList2.add(arrayList1.get(jList1.getSelectedIndex());
}

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

надеюсь, что это поможет

0
ответ дан jacho981 22 August 2018 в 21:39
поделиться

Начните с просмотра JList#getSelectedValuesList (или JList#getSelectedValues , если вы используете Java 6 или ранее)

Вы будете то необходимо применить эти значения ко второй модели JList. Как вы это сделаете, это будет зависеть от модели, которую вы уже используете ...

1
ответ дан MadProgrammer 22 August 2018 в 21:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: