تلخص هذه المقالة أساليب لقطة شاشة تنفيذ البرمجة Java المشتركة. شاركه للرجوع إليه ، على النحو التالي:
الطريقة 1:
استيراد java.awt.desktop ؛ استيراد java.awt.dimension ؛ استيراد java.awt.Rectangle ؛ استيراد java.awt.robot ؛ استيراد java.awt.toolkit ؛ استيراد java.aww t.image.bufferedimage ؛ ملف ؛ استيراد javax.imageio.imageio ؛ الفئة العامة التقاط {public static void capscreen (اسم ملف السلسلة ، مجلد السلسلة) يرمي استثناء {dimens ion screensize = stallkit.getDefaulttoolkit (). getScreensize () ؛ Robot Robot = New Robot () ؛ = ملف جديد (ScreenFile ، المجلد) ؛ Desktop.getDesktop () .Open (F) ؛ / TODO تم إنشاؤه تلقائيًا.الطريقة 2:
package com.qiu.util ؛ import java.io.*؛ استيراد javax.swing.*؛ استيراد java.awt.*؛ استيراد java.awt.event.*؛ استيراد java.awt.image.*؛ im port javax. Imageio.*؛/***التقاط شاشة بسيط***/screencapture الفئة العامة {// Test Main Public Static Void Main (string [] args) recors {String userDir = Systeme M.GetProperty ("user.dir" ) ) ؛ capture. } screencapture () {try {robot = new robot () ؛ مربع الحوار. rech) ؛ () ؛ int minx. min (x1 ، x2) ؛ ، Recy ، Recw ، rech) ؛ ؛ . مستطيل جديد (Toolkit.getDefaultToolkit (). = robot.createScreencapture (structles.getdefaulttoolkit (). بعد التقاط* / public bufferedimage getPickedImage () {return pickedImage ؛ Format * * deprecat تم استبداله بـ saveaspng (ملف الملف) ** / deprecated public void savetofile (ملف) يلقي iOexception {imageio.write (getPickedImage () في تنسيق png*/ public void saveaspng (ملف الملف) يلقي ioException {imageio.write (getPickedImage () ، "png" ، ملف) ؛ يلقي ioe xception {imageio.write (getPickedImage () ، "JPEG" ، ملف) ؛ ) ndimage labflelscreenimage = background robot ؛ يمتد Jlabel {public void paintcomponent (Graphics g) {super.paintcomponent (g) ؛ ) ؛ linyy ، getWidth () ، leghly) ؛ ؛الطريقة 3:
نظرًا لأنه يتم تقليله إلى نقاط البليت ، فلا يزال هناك حاجة إلى أيقونة البليت.
جزء رمز الشاشة الرئيسي هو:
robot ro = new robot () ؛ toolkit tk = toolkit.getDefaultToolkit () ؛ Dimension di = tk.getScreensize () ؛ strangle rec = مستطيل جديد (0،0 ، di.widt h ، di.height) ؛ bufferedimage bi = ro ( .
(رمز المصدر من CSDN)
استيراد java.awt ؛ Jtabbedpane JTP ؛ // مكان واحد العديد من الصور الفهرس الخاص بالمنتخب الخاص /::::::::::::::: :::::::::::::::: ::::::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::::::::::::: :::::: SetlookAndfeel (uimanager.getSysterfeellassname () ؛ TOP ، JTABBEDPANE.SCRORL_TAB_LAYOUT) ؛ هذا) ؛ Jlabel ("Capture" ، Jlabel.Center) ؛ ) jpanel () ؛ // اللوحة مع اثنين من أزرار الراديو jp.add (java = new jradiobutton ("java interface") ؛ هذا) ؛ New JPanel () all.Add (JP) ؛ ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::::::::::::::::: . {public void Windowsclosing (WindowEvent we) {captured.This.SetVisible (false) ؛ () .getResource ("BG.GIF") ؛ Actionevent ae) {joptionpane.showmessagedialog (capturescreen.this ، "<html> <font color = red> برنامج التقاط الشاشة <br> أضف إلى الأساس السابق ، وبعض الوظائف الشائعة الاستخدام ، <br> " +" على سبيل المثال ، حفظ الدفعة ، ومقاطع متعددة ، ونسخها إلى لوحة معجون النظام. أي أسئلة أثناء الاستخدام ، لا تتردد في الاتصال بنا. </font> </html> ") ؛}}) ؛ pm.addseparator () ؛ pm.add (new menuitem (" show main window "). addactionListener (new ActionListener () {public void actionperformed (actionevent ae) {capturescreen.This.setVisible (true) ؛ ) ؛ "Java Screen Capture" ، PM) ؛ exe) {exe.printstacktrace () ؛ إضافة ، يجب مسح الشيء الحالي ويتم وضع tabpane مرة أخرى إذا (index == 0) {c.removeall () ؛ فقط أضف لوحة إلى tabpane مباشرة // وليس عليك فعل أي شيء} picpanel = new picpanel (get) ؛ الموافقة المسبقة عن علم) ؛ RO = New Robot () ؛ (rec) ؛ (صحيح) ؛ جميع الصور */ public void dosaveall () {if (jtp.gettabcount () == 0) {joptionpane.showmessagedialog (هذا ، "الصورة لا يمكن أن تكون فارغة !!" ، "خطأ" ، joptionpane.error_message) ؛ } jfilechooser jfc = new jfilechooser (. ") ؛ gfilter () )) ؛ ext = file.tostrin g (). tolowercase () ؛ حول = "png" ؛ {ext = ext.substring (0 ، ext.lastindexof (ab out.toLowercase ())) ؛ }} // فئة مؤشرات الترابط المستخدمة خصيصًا لحفظ جميع الصور ، كما أنها تحتاج إلى عرضها المحفوظ في شريط التقدم الخاص ، SaveAlThread يمتد Jdialog الأدوات {private string name ، j pb ؛ // A Progress Bar private jlabel info ؛ // عرض عرض معلومات خاص int alltask ، donetask ؛ // جميع المهام ، أكملت المهام العامة saveallthread (اسم السلسلة ، سلسلة string) {super (capturedcreen.this ، "Save" ، true . هذا ) .start () ؛ {picpanel pp = (picpanel) jtp.getComponentat (i) ؛ SetText (" setValue (Donetask) ؛ this.dispose () ؛ هذا ، "الصورة" ، "خطأ" ، jopti onpane. New BMPFilter () ؛ . jpg "؛ if (! ext.endswith (". if (! ext.endswith (". Ext.endswith (". BMP") {String ns = ext+" (".gif") {String ns = ext+". gif" ! ") ؛} else joptionpane.showmessagedialog (هذا ،" حفظ فشل! ") ؛}} catch (استثناء exe) {exe.printstacktrace () ؛}} /** *تضيف المعالجة العامة الصورة الحالية إلى طريقة الحافظة * / / docopy public void (صورة BufferEdImage النهائية) {جرب {if (get == null) {joptionpane.showmessagedialog (هذا ، "الصورة لا يمكن أن تكون فارغة !!" ، "خطأ" ، joptionpane. error_message) ؛ New Transferable () {public dataflavor [] getTransferdataFlavors () {return new dataflavor [] النكهة) removedfortedforexception ، io {if (isdataflavorsuported ( ، "نسخ إلى لوحة المعجون !!") ؛ error_message) ؛ getSource () ؛ uimanager. ) ؛ ويمكن للمرء أن يضع في لوحة tabpane // هناك أيضًا مجموعة من طرق التعامل مع حفظ ونسخ الفئة الخاصة picpanel يمتد JPanels actionlistener {jbutton حفظ ، نسخ ، إغلاق ؛ ButtOmedImag GET ؛ // GET PICPANEL (GET) {super ( ) {Save = New Jbutton ("Save (S)") ؛ ') ؛ jlab el icon = new jlabel (new imageicon) ؛ (هذا) ؛ ) {docopy (get) ؛ () {} قبول المنازل العامة (ملف) {if (file.toString (). tolowercase () String getde script () {return " *.bmp (bmp image)" ؛ ملف) {if (file.toString () .ToLowerCase (). endswith (". J pg (jpg image) "؛}} // حفظ المرشحات في تنسيق GIF ، يمتد Giffilter الخاص بالجيفاكس. ) .tolowercase (). . ()) {return true ؛ mouselistener ، mousemotionlistener ) منطقة ثمانية نقاط التحرير/ :::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::: :::::::::::::::::::::::::::::::::: :::: /الثوابت الأربعة التالية تشير إلى من هي نقطة النهاية على الخط المحدد. int start_x start_x = 1 ؛ فقط هذان يحتاجان إلى تغيير النقطة الخاصة p = new point () ؛ // الموقع الحالي للماوس تحرك العرض المنطقي الخاص = صحيح ؛ // ما إذا كنت تريد عرض مطالبة. إذا ضغطت على زر الماوس الأيسر ، فإن المطالبة لم تعد Temp (JFRAME JF ، BufferedImage BI ، int) {this.jf = jf ؛ this.addmouseMotionListener (هذا) ؛ ) ؛ ؛ endx ؛ ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::: 2،5،5) ؛ -2،5،5) ؛ starty-2،5،5) ؛ ] = مستطيل جديد (x1-5 ، y-5،10،10) ؛ ] = مستطيل جديد ((startx> endx؟ startx: endx) -5 ، y1-5،10،10) ؛ ؟ starty: endy) -5،10،10) ؛ X-5 ، (starty> endy؟ endy) -5،10 ، 10) ؛ (color.cyan) ؛ G.DrawString ("يرجى الضغط على زر الماوس الأيسر وعدم وضع لقطة الشاشة" ، PX ، P.Y+15) ؛ ، غربًا ، initselect private (state) {switch (state) CASTERNS ؛ 0 ؛ = (starty> end_y: start_y) ؛ start_x) ؛ MouseMoved (Mouseevent ME) المنطقة التي تريد تحديدها في كل مرة proid void (mouseevent me) {if (select.contains (me.getpoint ()) آخر {states [] st = states.values () ؛ [i] ؛ mouseevent ME) {} public void mousedrag (mouseevent me) {int x = me.getx () ؛ starty+= y-tempy) ؛ ) {if (CurrentX == Start_x) {startx+= (x-tempx) ؛ |= states.south) {if (currenty = start_y) {starty+= (y-tempy) ؛ Current == States.North_east || y ؛ tempx = x ؛ = خطأ ؛ صحيح Mouseevent ME) {if (me.getClickCount () == 2) {// strenge rec = new steled (star tx ، starty ، math.abs (endx -startx) ، math.abs (endy -starty)) ؛ = me.getPoint () ؛ . x+ select.width> = this.getWidth ()) {wid = this.getWidth ()-select.x ؛ )-Select.y ؛ []) {swingutability.invokelater (new RunNable () {public void run () {new captured () ؛}}) ؛ // يشير إلى الزاوية الشمالية الغربية من الشمال (المؤشر الجديد (cursor.n_resize_cursor)) ، north_east (المؤشر الجديد (المؤشر ) ، الجنوب (المؤشر الجديد (cursor.s_resize_cursor)) ، south_west (المؤشر الجديد (المؤشر المؤشر المؤشر (المؤشر) ؛آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.