Мне нужно скопировать объект Image и объект String в буфер обмена следующим образом: Вставить изображения и текст одновременно, но я могу копировать только тексты или изображения.Я уже читал, как скопировать изображение и текст в буфер обмена с помощью Java? и http://www.coderanch.com/t/345580/GUI/j ... tom-object, но мою проблему это не решило.
поиском в Google я получил только следующий код:
public class ClipboardTest {
public static void main(String[] args) throws IOException {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Image image = ImageIO.read(new File("D:\\文件\\java\\BParser\\src\\test\\java\\icon.png"));
String text = "Hello world";
Transferable transferable = new Transferable() {
@Override
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[] {DataFlavor.imageFlavor, DataFlavor.stringFlavor};
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
return false;
}
@Override
public @NotNull Object getTransferData(DataFlavor dataFlavor) {
if(dataFlavor.equals(DataFlavor.imageFlavor)) {
return image;
} else if(dataFlavor.equals(DataFlavor.stringFlavor)) {
return text;
}
return image;
}
};
clipboard.setContents(transferable, null);
}
}
и я получил следующие результаты:
java.io.IOException: Registered service providers failed to encode BufferedImage@6108b2d7: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space = java.awt.color.ICC_ColorSpace@246ae04d transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width = 32 height = 33 #numDataElements 4 dataOff[0] = 3 to image/jpeg
at java.desktop/sun.awt.datatransfer.DataTransferer.imageToStandardBytesImpl(DataTransferer.java:1802)
at java.desktop/sun.awt.datatransfer.DataTransferer.imageToStandardBytes(DataTransferer.java:1716)
at java.desktop/sun.awt.windows.WDataTransferer.imageToPlatformBytes(WDataTransferer.java:353)
at java.desktop/sun.awt.datatransfer.DataTransferer.translateTransferable(DataTransferer.java:855)
at java.desktop/sun.awt.windows.WDataTransferer.translateTransferable(WDataTransferer.java:220)
at java.desktop/sun.awt.windows.WClipboard.setContentsNative(WClipboard.java:83)
at java.desktop/sun.awt.datatransfer.SunClipboard.setContents(SunClipboard.java:105)
at ClipboardTest.main(ClipboardTest.java:41)
进程已结束,退出代码为 0
Подробнее здесь: https://stackoverflow.com/questions/780 ... -same-time
Как скопировать изображения и текст в буфер обмена одновременно ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1715273699
Anonymous
Мне нужно скопировать объект Image и объект String в буфер обмена следующим образом: Вставить изображения и текст одновременно, но я могу копировать только тексты или изображения.Я уже читал, как скопировать изображение и текст в буфер обмена с помощью Java? и http://www.coderanch.com/t/345580/GUI/java/Cut-copying-pasting-custom-object, но мою проблему это не решило.
поиском в Google я получил только следующий код:
public class ClipboardTest {
public static void main(String[] args) throws IOException {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Image image = ImageIO.read(new File("D:\\文件\\java\\BParser\\src\\test\\java\\icon.png"));
String text = "Hello world";
Transferable transferable = new Transferable() {
@Override
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[] {DataFlavor.imageFlavor, DataFlavor.stringFlavor};
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
return false;
}
@Override
public @NotNull Object getTransferData(DataFlavor dataFlavor) {
if(dataFlavor.equals(DataFlavor.imageFlavor)) {
return image;
} else if(dataFlavor.equals(DataFlavor.stringFlavor)) {
return text;
}
return image;
}
};
clipboard.setContents(transferable, null);
}
}
и я получил следующие результаты:
java.io.IOException: Registered service providers failed to encode BufferedImage@6108b2d7: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space = java.awt.color.ICC_ColorSpace@246ae04d transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width = 32 height = 33 #numDataElements 4 dataOff[0] = 3 to image/jpeg
at java.desktop/sun.awt.datatransfer.DataTransferer.imageToStandardBytesImpl(DataTransferer.java:1802)
at java.desktop/sun.awt.datatransfer.DataTransferer.imageToStandardBytes(DataTransferer.java:1716)
at java.desktop/sun.awt.windows.WDataTransferer.imageToPlatformBytes(WDataTransferer.java:353)
at java.desktop/sun.awt.datatransfer.DataTransferer.translateTransferable(DataTransferer.java:855)
at java.desktop/sun.awt.windows.WDataTransferer.translateTransferable(WDataTransferer.java:220)
at java.desktop/sun.awt.windows.WClipboard.setContentsNative(WClipboard.java:83)
at java.desktop/sun.awt.datatransfer.SunClipboard.setContents(SunClipboard.java:105)
at ClipboardTest.main(ClipboardTest.java:41)
进程已结束,退出代码为 0
Подробнее здесь: [url]https://stackoverflow.com/questions/78088405/how-to-copy-images-and-text-to-clipboard-at-the-same-time[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия