Pergunta

Eu tenho dois jlist em uma gui swing. Agora eu quero isso quando um usuário clica em um botão (digamos transferbutton), os elementos selecionados de um JLIST são adicionados do primeiro JLIST ao segundo JLIST e remova os elementos selecionados do primeiro JLIST.

Foi útil?

Solução

O modelo não sabe sobre seleção.

O JLIST fornece vários métodos para obter o item selecionado ou o índice selecionado. Use esses métodos para obter os itens e adicione -os ao modelo da outra lista.

Outras dicas

Você tem dois JLists, então você também tem o respectivo ListModels. Dependendo de como você os implementou, você pode remover os elementos de um modelo e adicioná -los ao outro. Observe, porém, que o ListModel A interface não se importa com mais do que acesso a elementos por padrão, então você provavelmente precisa implementar add e remove métodos lá sozinho.

DefaultListModel leftModel = new DefaultListModel();
leftModel.addElement("Element 1");
leftModel.addElement("Element 2");
leftModel.addElement("Element 3");
leftModel.addElement("Element 5");
leftModel.addElement("Element 6");
leftModel.addElement("Element 7");

JList leftList = new JList(leftModel);

DefaultListModel rightModel = new DefaultListModel();
JList rightList = new JList(rightModel);

Vamos imaginar que você tenha dois componentes JLIST, conforme descrito no código acima (esquerda e direita). Você deve escrever o código seguinte para transferir valores selecionados da esquerda para a direita JLIST.

for(Object selectedValue:leftList.getSelectedValuesList()){
    rightModel.addElement(selectedValue);
    leftModel.removeElement(selectedValue);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top