همایش نمایندگی های انستیتو ایزایران
مشهد مقدس آذر 1394
تقدیر ریاست محترم فنی و حرفه ای تهران
مرکز 8 فنی و حرفه ای اقدسیه
کارگاه های مجهز و اساتید با تجربه
انستیتو انفورماتیک فنی کار

ایزایران لپ تاپ

با اعطای مدرک بین المللی انستیتو ایزایران | با اعطای مدرک انستیتو انفورماتیک فنی کار

مرکز آموزش تخصصی و فوق تخصصی نصب و تعمیرات ماشین های اداری و سخت افزار کامپیوتر

ثبت نام  آنلاین    شهریه دوره ها 

چگونه می توان توسط جاوا در Clipboard، یک متن یا Text وارد نمود؟ « عمل Copy-Paste »
هدف از این مقاله آموزش نحوه کار با Clipboard در سیستم عامل می باشد. در این مقاله هدف آن است که با اجرای برنامه جاوا، متنی را در Clipboard وارد نموده و بعد با بازکردن یک ویرایشگر متنی مانند MS WORD، Nodpad ، Wordpad و انجام عمل Paste متن فوق را از Clipboard به ویرایشگر منتقل نمایید.
قبل از شروع کار لازم به توضیح است که در کل دو نوع Clipboard وجود دارد.
۱- System Clipboard : این نوع حافظه موقت، مشترک بین همه برنامه های کاربردی موجود در سیستم عامل بوده و همه برنامه ها به آن دسترسی دارند. در واقع از آن می توان به عنوان نوعی پل ارتباطی بین برنامه های مختلف یاد کرد. برنامه موجود در این مقاله از این نوع Clipboard استفاده می کند.
۲- Local Clipborad : نوع دیگری از حافظه موقت می باشد که فقط در اختیار یک برنامه جاوا بوده و برای کاربرد داخلی از آن استفاده می شود.
نکات مهم در این برنامه عبارتند از:
۱- استفاده از واسط ClipboardOwner : برنامه هایی که قصد استفاده از Clipboard را دارند ابتدا باید از لحاظ سطح دسترسی نسبت به Clipboard  نقش Owner یا مالک را داشته باشند. به همین منظور و برای کنترل این سطح دسترسی، کلاس برنامه، واسط ClipboardOwne را مورد استفاده قرار می‌دهد.
این واسط متدی با نام lostOwnership دارد که زمانی که برنامه، دیگر کنترل Clipboard را به عنوان Owner آن از دست دهد، به برنامه اطلاع می دهد.
۲- مرحله بعد بکارگیری متد checkSystemClipboardAccess  از کلاس SecurityManager  جهت بررسی وضعیت دسترسی برنامه به Clipboard می‌باشد.
۳- getSystemClipboard متدی است که به کمک آن امکان دسترسی به Clipboard سیستم به برنامه داده می شود و می توان محتویات درون آن را تغییر داد.
۴- برنامه به کمک متد setContents قادر به تغییر محتویات جاری Clipboard می باشد.
۵- آخرین نکته در این برنامه استفاده از کلاس StringSelection می باشد. به کمک این کلاس، برنامه قادر خواهد بود تا متنی را به Clipboard منتقل نماید.
import java.awt.datatransfer.*;
import java.awt.*;
public class Java2Clipboard implements ClipboardOwner
public void toClipboard()
catch (Exception e)
Toolkit tk = Toolkit.getDefaultToolkit();
StringSelection st = new StringSelection(“Hello world from Java”);
Clipboard cp = tk.getSystemClipboard();
cp.setContents(st, this);
public void lostOwnership(Clipboard clip, Transferable tr)
چگونه می توان توسط جاوا محتویات متنی موجود در Clipboard را خواند؟
در ابن مقاله نحوه خواندن محتویات موجود در Clipboard مورد بررسی قرار می گیرد. البته محتویات متنی موجود در Clipboard ! قبل از شروع کار بهتر است با واژه Data Transfer آشنا شویم.
Data Transfer به قابلیتی در برنامه های کاربردی اشاره دارد که در آن برنامه قادر به انتقال داده های انتخاب شده – بدون توجه به روشهای مختلف انتخاب کردن – باشد. بطور مثال فرض کنید که می خواهید متنی را از یک Textbox به Textbox دیگر منتقل نمایید. یعنی عمل CUT را انجام دهید. انجام چنین کاری با استفاده از تکنیک Data Transfer امکان پذیر می باشد. موارد استفاده این تکنیک در cut-and-paste و drag-and-drop می باشد.
پس برای شروع لازم است تا بسته java.awt.datatransfer در برنامه import نمایید. این بسته شامل دو کلاس اصلی می باشد.
۱- کلاس DataFlavor : از این کلاس برای توصیف نوع و فرمت داده ای که قصد انتقال آن را داریم، استفاده می شود.
مکانیزم انتقال داده ها، به روشی دقیق، سریع، مفید و قابل حمل جهت شناسایی نوع داده ای که قصد حمل کردن آن را دارد، نیازمند می باشد. نکته مهم و ضروری در این میان آن است که هر دو طرف عمل انتقال، باید بصورت دقیق و واضح نوع داده را بدانند. نکته مهم دیگر آن است که ممکن است برنامه های کاربردی دو طرف عمل انتقال، از یک نوع نبوده و دارای ساختارهای متفاوتی باشند. مثلا برنامه کاربردی مبدا با جاوا تولید شده باشد و طرف مقصد با دلفی. حال توجه به این نکته بسیار ضروری به نظر می رسد که مکانیزم شناسایی نوع و فرمت داده باید انعطاف پذیر و عمومی و قابل فهم توسط هر دو طرف انتقال باشد.
کلاس DataFlavor وظایف فوق را بخوبی انجام می دهد. این کلاس برای مشخص کردن نوع و فرمت داده ها، از انواع استاندارد داده یعنی MIME TYPE اسفاده می کند. به عنوان نمونه می توان به فرمتهای “text/html” و “image/jpeg” اشاره نمود.
این کلاس برای راحتی کار در شناسایی نوع و فرمت داده ها یک سری ثوابت برای تعیین نوع‌، انواع معمول داده ها تعریف کرده است. مانند:
۱- DataFlavor.stringFlavor
2- DataFlavor.plainTextFlavor
3- DataFlavor.javaFileListFlavor
برای تعیین نوع سایر انواع داده ها، می توانید از ثوابت سفارشی که توسط برنامه نویس تعریف می شود استفاده نمایید. به عنوان نمونه، به عبارت زیر توجه نمایید:
DataFlavor jpegFlavor = new DataFlavor(“image/jpeg”, “JPEG Image Data”);
DataFlavor pointFlavor = new DataFlavor(java.awt.Point.class,”Java Point Object”);
2- واسط Transferable : این واسط نیز متد های مورد نیاز برای انتقال داده ها را تعریف می کند.
در کلاس قبل فقط نوع و فرمت داده تعیین می شود و خبری از خود داده و یا انتقال داده وجود ندارد. در واقع عمل انتقال توسط واسط Transferable صورت می‌پذیرد. داده هایی که قرار است منتقل شوند توسط این واسط کپسوله شده و بعد منتقل می شوند.
همانطور که در مورد قبل اشاره شد، ممکن است عمل انتقال داده ها بین  محیط های متفاوت صورت پذیرد. پس باید به گونه ای داده ها منتقل شوند تا هر محیطی قادر به استفاده از آنها باشد. راه حل پیشنهادی برای این مشکل آن است که داده های مورد نظر را در فرمت های مختلف ارسال نماییم. بطور مثال فرض کنید که قصد انتقال یک String را از محیط جاوا دارید. مقصد نیز ممکن است جاوایی باشد یا محیطی غیر از جاوا. پس برای ارسال داده ها باید از دو فرمت  java String Object یا Stream of Unicode Characters استفاده نمایید. اگر مقصد محیط جاوا بود از نوع اول استفاده می کند و در غیر اینصورت از نوع دوم.
واسط transferable سه متد زیر را تعریف می کند:
۱- getTransferDataFlavors : این متد آرایه ای از اشیایی از نوع Dataflavor باز می گرداند که بیانگر نوع داده هایی است که قصد انتقال آنها را داریم.
۲ – isDataFlavorsSupported : همانطور که از نام متد مشخص است، این متد بررسی می کند که آیا نوع و فرمت داده توسط محیط پشتیبانی می شود؟
۳- getTransferData :  این متد انجام عمل انتقال داده ها را بر عهده دارد. این متد یک آرگومان ورودی دارد که نوع داده ای که قرار است انتقال دهد را مشخص می کند. اگر نوع داده ارسالی به این متد، پشتیبانی نشود، خطای زیر صادر خواهد شد:
UnsupportedFlavorException
«نکته» به علت اینکه نوع داده text بسیار زیاد مورد استفاده قرار می گیرد، در بسته java.awt.datatransfer کلاسی با نام StringSelection تعبیه شده است که مختص انتقال داده های متنی می باشد. این کلاس از دو نوع داده DataFlavor.stringFlavor و DataFlavor.plainTextFlavor پشتیبانی می‌کند.
برنامه TextTransfer.java نشان می دهد که چگونه به Clipboard دسترسی یافته و داده های متنی موجود در آن را بدست آورده و نمایش دهیم.
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.Toolkit;
import java.io.*;
public final class TextTransfer implements ClipboardOwner
/**
* Empty implementation of the ClipboardOwner interface.
*/
public void lostOwnership( Clipboard aClipboard, Transferable aContents)
/**
* Place a String on the clipboard, and make this class the
* owner of the Clipboard’s contents.
*/
public void setClipboardContents( String aString )
/**
* Get the String residing on the clipboard.
*
* @return any text found on the Clipboard; if none found, return an
* empty String.
*/
public String getClipboardContents() catch (UnsupportedFlavorException ex) catch (IOException ex)
return result;
تصویر زیر خروجی این برنامه را در محیط NetBeans نمایش می دهد. دقت کنید که قبل از اجرای برنامه رشته زیر را در Clipboard قرار داده ایم.
Get the String residing on the clipboard.

فرم ثبت نام

پس از تکمیل فرم پیش ثبت نام منتظر تماس مشاور آموزشی خودتان باشید . در صورت تمایل با شماره ویژه : 02188930441 تماس بگیرید

اطلاعات فردی

شماره تلفن شما راه ارتباطی ما با شماست در زمان ثبت نام دقت کنید به اشتباه عددی را وارد ننمایید .

انتخاب دوره آموزشی

captcha

دوره های آموزشی

ecu fannikar.com

copier fannikar.com

fax fannikar.com

fannikar camera

انستیتو انفورماتیک فنی کار نماینده رسمی و معتبر انستیتو ایزایران مرکز آموزش تعمیرات تخصصی و آموزش تعمیرات ماشینهای اداری و آموزش تعمیرات فکس و آموزش تعمیرات تبلت و آموزش تعمیرات پرینتر و آموزش تعمیرات مادربرد و آموزش تعمیرات لپ تاپ و آموزش تعمیرات موبایل و آموزش تعمیرات چاپگر و آموزش تعمیرات کپی و آموزش شارژ کارتریج و آموزش تعمیرات ecu و آموزش تعمیر پرینتر لیزری و آموزش تعمیرات بردهای پزشکی و آموزش تعمیرات نوت بوک و آموزش تعمیرات چاپگر لیزری و آموزش تعمیر ماشین های اداری و اموزش تعمیر dvr و آموزش تعمیرات در تهران و آموزشگاه تعمیرات فنی و آموزش تعمیرات و نصب و آموزش تعمیرات چاپگر های جدید و آموزش تعمیر موبایل و آموزش تعمیرات موبایل و آموزش تعمیر تلویزیون و آموزش تعمیرات تلویزیون و آموزش تعمیر کامپیوتر و آموزش تعمیرات کامپیوتر و آموزش تعمیر ای سی یو و آموزش تعمیرات ای سی یو و آموزش تعمیر لپ تاپ و آموزش تعمیرات لپ تاپ و آموزش تعمیر لپتاپ و آموزش تعمیرات لپتاپ و آموزش تعمیر ال ای دی و آموزش تعمیرات ال ای دی و آموزش تعمیر ال سی دی و آموزش تعمیرات ال سی دی و آموزش نصب دوربین مدار بسته و آموزش نصب دوربین مداربسته و آموزش نصب کولر گازی و آموزش نصب کولرگازی و آموزش تعمیر کولر گازی و آموزش تعمیرات کولر گازی و آموزش شارژ کارتریج و آموزش شارژ کارتریج و آموزش مهندسی معکوس و اموزش مهندسی معکوس و آموزش تعمیر برد الکترونیکی و آموزش تعمیرات برد الکترونیکی و آموزش نصب دزدگیر خودرو و آموزش نصب دزدگیر ماشین و  آموزش تعمیر ماشین های اداری و آموزش تعمیرات ماشین های اداری و آموزش تعمیر ماشینهای اداری و آموزش تعمیرات ماشینهای اداری و آموزشگاه تعمیر موبایل و آموزشگاه تعمیرات موبایل و اموزش تعمیر موبایل و اموزش تعمیرات موبایل و اموزش تعمیر تلویزیون و اموزش تعمیرات تلویزیون و اموزش تعمیر کامپیوتر و اموزش تعمیرات کامپیوتر و اموزش تعمیر ای سی یو و اموزش تعمیرات ای سی یو و اموزش تعمیر لپ تاپ و اموزش تعمیرات لپ تاپ و اموزش تعمیر لپتاپ و اموزش تعمیرات لپتاپ و اموزش تعمیر ال ای دی و اموزش تعمیرات ال ای دی و اموزش تعمیر ال سی دی و اموزش تعمیرات ال سی دی و اموزش نصب دوربین مدار بسته و اموزش نصب دوربین مداربسته و اموزش نصب کولر گازی و اموزش نصب کولرگازی و اموزش تعمیر کولر گازی و اموزش تعمیرات کولر گازی و اموزش شارژ کارتریج و اموزش شارژ کارتریج و اموزش مهندسی معکوس و اموزش تعمیرات برد به روش مهندسی معکوس و اموزش تعمیر برد الکترونیکی و اموزش تعمیرات برد الکترونیکی و اموزش نصب دزدگیر خودرو و اموزش نصب دزدگیر ماشین و اموزش تعمیر ماشین های اداری و آموزش تعمیرات ماشین های اداری و اموزش تعمیر ماشینهای اداری و اموزش تعمیرات ماشینهای اداری و اموزشگاه تعمیر موبایل و اموزشگاه تعمیرات موبایل در فنیکار