Как я могу перехватить операции с буфером обмена и добавить их в JList? - PullRequest
0 голосов
/ 16 сентября 2011

Всякий раз, когда нажимается Ctrl + C , я хотел бы добавить содержимое буфера обмена в JList в качестве элемента.По сути, я хочу, чтобы приведенный ниже код выполнялся при нажатии Ctrl + C .

Как я могу это сделать?

current=getClipboardContents();
model.addElement(current);

current - это String в классе Clip, а model - модель по умолчанию для JList

1 Ответ

1 голос
/ 16 сентября 2011

Для этого вы, вероятно, будете использовать Связывания клавиш .

Действие для нажатия клавиш будет выглядеть примерно так:

Transferable t = c.getContents( null );

if ( t.isDataFlavorSupported(DataFlavor.stringFlavor) )
{
    Object o = t.getTransferData( DataFlavor.stringFlavor );
    String data = (String)t.getTransferData( DataFlavor.stringFlavor );
}

да, я постоянно читаюсистемный буфер обмена

Не очень хороший дизайн.Что если что-то будет заменено в буфере обмена, прежде чем вы скопируете содержимое и добавите его в свой JList?

В любом случае вам уже был дан код для копирования текста из буфера обмена.Я бы использовал таймер для планирования опроса, чтобы обновление EDM было выполнено в EDT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...