Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Clipboard
extends java.lang.Object
Чтобы получить доступ к общему системному буферу обмена, используйте следующий код:
Clipboard clipboard = Clipboard.getSystemClipboard();
Есть только когда-либо один экземпляр системного буфера обмена в приложении, таким образом, совершенно приемлемо спрятать ссылку на это где-нибудь удобный если Вы, так выберите.
Буфер обмена работает на понятии наличия единственного концептуального элемента на буфере обмена в любой момент - хотя это может быть помещено в буфер обмена в различных форматах. Например, пользователь мог бы выбрать текст в редакторе HTML и нажать ctrl+c или cmd+c, чтобы скопировать это. В этом случае тот же самый текст мог бы быть доступным на буфере обмена и как HTML и как простой текст. Есть две копии данных на буфере обмена, но они оба представляют те же самые данные.
Контент определяется на Буфере обмена при использовании setContent(java.util.Map)
метод. Во-первых, создайте объект ClipboardContent, затем вызовите setContent. Каждый раз setContent вызывают, любые предыдущие данные на буфере обмена очищаются и заменяются этим новым контентом.
final Clipboard clipboard = Clipboard.getSystemClipboard();
final ClipboardContent content = new ClipboardContent();
content.putString("Some text");
content.putHtml("<b>Some</b> text");
clipboard.setContent(content);
ClipboardContent
class является просто картой с методами удобства для того, чтобы иметь дело с типами общих данных, добавленными к буферу обмена.
Поскольку многократные представления тех же самых данных могут существовать на буфере обмена, и потому что у различных приложений есть различные возможности обработки различных типов контента, важно поместить так много представлений данных в буфер обмена, как практично, чтобы облегчить внешние приложения. Отметьте, что иногда операционная система могла бы быть полезной в некоторых случаях и добавить многократные типы для Вас. Например, Mac мог бы установить строку простого текста для Вас, когда Вы определяете тип RTF. То, как и при каких обстоятельствах это происходит, вне области этой спецификации, консультируйтесь со своей документацией ОС.
Читая данные от буфера обмена, важно искать самый богатый поддерживаемый тип сначала. Например, если у меня есть текстовый документ, который поддерживает встраивание изображений и форматов носителя, вставляя контент от буфера обмена, я должен сначала проверить, чтобы видеть, может ли контент быть представлен как носители или как изображение. В противном случае тогда я мог бы проверить на RTF или HTML или независимо от того, что rich text format поддерживается моим типом документа. В противном случае тогда я мог бы только взять Строку.
Или например, если у меня есть документ простого текста, тогда я был бы простой получать Строковое представление и использование это при наличии. Я могу проверить, чтобы видеть если буфер обмена "hasHtml" или "hasString".
if (clipboard.hasString()) { ... }
В дополнение к общему или созданному в типах, можно поместить любые произвольные данные на буфер обмена (предполагающий, что это - или ссылка, или сериализуемый. См. больше о ссылках позже). Система буфера обмена в JavaFX использует ту же самую систему как Какао для того, чтобы определить иерархическое пространство имен для типов контента. См. http://en.wikipedia.org/wiki/Uniform_Type_Identifier.
DataFormat class определяет неизменный объект, и есть много статических заключительных полей для общих типов DataFormat. Конечно, специализированные типы DataFormat могут также быть объявлены и использоваться. Следующие два метода эквивалентны (и второй вызов переопределит первое!)
ClipboardContent content = new ClipboardContent();
content.putString("some text");
content.put(DataFormat.PLAIN_TEXT, "other text");
Модификатор и Тип | Метод и Описание |
---|---|
void |
clear()
Очищает буфер обмена от любого и всего контента.
|
java.lang.Object |
getContent(DataFormat dataFormat)
Возвращает контент, сохраненный в этом буфере обмена данного типа, или нуле, если нет никакого контента с этим типом.
|
java.util.Set<DataFormat> |
getContentTypes()
Получает набор типов DataFormat на этом экземпляре Буфера обмена, которые связали данные, зарегистрированные на буфере обмена.
|
java.util.List<java.io.File> |
getFiles()
Получает Список Файлов от буфера обмена, который был ранее зарегистрирован.
|
java.lang.String |
getHtml()
Получает текстовую строку HTML от буфера обмена, который был ранее зарегистрирован.
|
Изображение |
getImage()
Получает Изображение от буфера обмена, который был ранее зарегистрирован.
|
java.lang.String |
getRtf()
Получает текстовую строку RTF от буфера обмена, который был ранее зарегистрирован.
|
java.lang.String |
getString()
Получает простой текст Строка от буфера обмена, который был ранее зарегистрирован.
|
static Clipboard |
getSystemClipboard()
Получает буфер обмена существующей системы, через который данные могут храниться и получены.
|
java.lang.String |
getUrl()
Получает Строку URL от буфера обмена, который был ранее зарегистрирован.
|
boolean |
hasContent(DataFormat dataFormat)
Тесты, есть ли какой-либо контент на этом буфере обмена данного типа DataFormat.
|
boolean |
hasFiles()
Добирается ли Список Файлов (DataFormat. ФАЙЛЫ), был зарегистрирован на этом Буфере обмена.
|
boolean |
hasHtml()
Добирается, была ли текстовая строка HTML (DataFormat.HTML) зарегистрирована на этом Буфере обмена.
|
boolean |
hasImage()
Добирается ли Изображение (DataFormat. ИЗОБРАЖЕНИЕ), был зарегистрирован на этом Буфере обмена.
|
boolean |
hasRtf()
Добирается, была ли Строка RTF (DataFormat.RTF) зарегистрирована на этом Буфере обмена.
|
boolean |
hasString()
Добирается ли простой текст Строка (DataFormat. PLAIN_TEXT), был зарегистрирован на этом Буфере обмена.
|
boolean |
hasUrl()
Добирается ли Строка url (DataFormat. URL), был зарегистрирован на этом Буфере обмена.
|
boolean |
setContent(java.util.Map<DataFormat,java.lang.Object> content)
Помещает контент на буфер обмена.
|
public static Clipboard getSystemClipboard()
public final void clear()
getContentTypes()
прежде, чем поместить больше контента в буфер обмена приведет к возвращаемому пустому множеству.public final java.util.Set<DataFormat> getContentTypes()
public final boolean setContent(java.util.Map<DataFormat,java.lang.Object> content)
content
- Контент, чтобы поставить буфер обмена. Если ноль, буфер обмена просто очищается и никакой новый добавленный контент.java.lang.NullPointerException
- если нулевую ссылку данных передают для какого-либо форматаpublic final java.lang.Object getContent(DataFormat dataFormat)
public final boolean hasContent(DataFormat dataFormat)
public final boolean hasString()
hasContent(DataFormat.PLAIN_TEXT)
возвращает true, ложь иначеpublic final java.lang.String getString()
getContent(DataFormat.PLAIN_TEXT)
. Если никакая такая запись не существует, нуль возвращается.public final boolean hasUrl()
public final java.lang.String getUrl()
getContent(DataFormat.URL)
. Если никакая такая запись не существует, нуль возвращается.public final boolean hasHtml()
hasContent(DataFormat.HTML)
возвращает true, ложь иначеpublic final java.lang.String getHtml()
getContent(DataFormat.HTML)
. Если никакая такая запись не существует, нуль возвращается.public final boolean hasRtf()
public final java.lang.String getRtf()
getContent(DataFormat.RTF)
. Если никакая такая запись не существует, нуль возвращается.public final boolean hasImage()
public final Image getImage()
getContent(DataFormat.IMAGE)
. Если никакая такая запись не существует, нуль возвращается.public final boolean hasFiles()
public final java.util.List<java.io.File> getFiles()
getContent(DataFormat.FILES)
. Если никакая такая запись не существует, нуль возвращается.Copyright (c) 2008, 2011, Oracle и/или его филиалы. Все права защищены. Использование подвергается