В этой статье суммируются общие методы реализации программирования Java. Поделитесь этим для вашей ссылки, следующим образом:
Метод 1:
Импорт java.awt.desktop; import java.awt.dimension; import java.awt.rectangle; импорт java.awt.robot; импорт java.awt.toolkit; импорт java.aww t.image.bufferedimage; импорт java.io. File; import javax.imageio.imageio; открытый класс Capture -Creen {public static void capture -uperen (String filename, String Folder) Throws Exception {Dimens Ion Screensize = toolkit.getDefaulttoolkit (). GetsCreensize (); Robot robot = new Robot (); = новый файл (Screenfile, Folder); Desktop.getDesktop () .open (f); / Todo Auto Generated Catch Block e.printstacktrace ();Метод 2:
пакет com.qiu.util; импорт java.io.*; импорт javax.swing.*; импортировать java.awt.*; импорт java.awt.event.*; импортировать java.awt.image.*; im port javax. Imageio.*;/***Простой захват экрана***/Общедоступный экраны класса {// тестирование основного общедоступного статического void main (string [] args) бросает исключение {String userdir = Systeme m.getProperty ("user.dir" ); ); Capture. } private Screencapture () {try {robot = new Robot (); Диалог getContentPane (); rech); (); int minx = математика (x1, x2); recy, recw, rech); ; .getMaximumSize ()); New Rectangle (Toolkit.getDefaulttoolkit () .getScreensize ()); = robot.createstencapture (новый прямоугольник (toolkit.getdefaulttoolkit () .getScreensize ()); После захвата* / public BufferedImage getPickedImage () {return bickedimage; Format * * @deprecat ed заменен Saveaspng (файл файла) ** / @deprecated public void savetofile (файл файл), бросает ioexception {imageio.write (getpickedimage (), defortiMageformater, file); В формате png*/ public void saveaspng (файл файла) Throws ioexception {imageio.write (getPickedImage (), "png", file); бросает ioe xception {imageio.write (getpickedimage (), "jpeg", file); ); ndimage labfullscreenimage = new FounalImage (); Extends jlabel {public void paintcomponent (графика g) {super.paintcomponent (g); ); liney, getWidth (), Liney); ;Метод 3:
Поскольку он сведен к минимуму для поддона системы, все еще необходима значок поддона.
Основная часть кода экрана:
Robot ro = new Robot (); Toolkit tk = toolkit.getDefaulttoolkit (); Dimension di = tk.getScreensize (); rectangle rec = new Rectangle (0,0, di.widt h, di.height); BuffereMage bi = Ro ..
(Исходный код из CSDN)
Импорт java.awt.*; импорт java.awt.datatransfer.dataflaul; импорт java.awt.datatransfer.transferable; импорт java.awt.datatransfer.unsupportedflavore Xcept; импорт java.awt.event. ; Jtabbedpane jtp; // одно место много изображений Private int index; // Индекс, который всегда будет увеличиваться, используется для идентификации изображений Private Jradiobutton Java, System; // java interface, системный интерфейс/** создает новый экземпляр CaptureScreen* /: ::::::::::::::: ::::::::::::::::: ::::::::::::::: setlookandfeel (uimanager.getSystemLookAndfeelClassName ()); Top, jtabbedpane.scroll_tab_layout); это); Jlabel («Захват экрана», jlabel.center); ); Jpanel (); // Панель с двумя радиопроизводными кнопками jp.add (java = new jradiobutton ("java interface")); это); new jPanel (); ::::::::::::::::: ::::::::::::::::: ::::::::::::::::: ::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::: . South); {public windowsclose (WindowEvent WE) {CaptureScreen.this.setVisible (false); () .getresource ("bg.gif"); ActionEvent ae) {joptionpane.showmessageDialog (captureScreen.This, "<html> <font color = red> <center> <h 2> о </h2> </center> </font>" + "Это чистая Java Программа захвата экрана <br> Добавьте к предыдущей основе, некоторые обычно используемые функции, <br> « +» Например, пакетное сохранение, несколько клипов и копируйте в системную плату. Любые вопросы во время использования, пожалуйста, не стесняйтесь обращаться к нам. </Font> </html> ");}}); pm.addseparator (); pm.add (new Menuitem (" Show Main Window ")). AddactionListener (new ActionListener () {public void actionPerformed (ActionEvent ae) {CaptureScreen.Tis.SetVisible (true); ); «Захват экрана Java», PM); Exception exe) {exe.printstacktrace (); добавлено, // текущая вещь должна быть очищена, а табпейн снова вставлен, если (index == 0) {c.removeall (); Просто добавьте панель в Tabpane напрямую //, и вам не нужно ничего делать} picpanel pic = new Picpanel (get); PIC); RO = Robot (); (rec); (True); Все картинки */ public void dosaveall () {if (jtp.gettabcount () == 0) {joptionpane.showmessageedog (это, «картинка не может быть пустой !!», «ошибка», joptionpane.error_message); } JFILECHOOSER JFC = new JFILECHOOSER ("."); Gfilter () ); ext = file.tostrin g (). о = "png"; {ext = ext.substring (0, ext.lastindexof (ab out.tolowercase ())); }} // Класс потоков, специально используемый для сохранения всех изображений, также необходимо отобразить его сохраненный строка в личном классе Private Class SaveallThread Extends JDialog реализует runnable {private String name; // name fale Header Private String Ext; // Формат файла Private JProgressBar j pb; // Бар хода Private jlabel Info; // информационный дисплей Private int alltask, donetask; // Все задачи, выполненные задачи public saveallthread (string name, string ext) {super (capturescreen.this, "Сохранить" Верно); .setminimum (0); это ) .start (); {Picpanel pp = (picpanel) jtp.getcomponentat (i); setText ("<html> <b> Сохранение: </b> <br>"+f.tostring ()+"</html>"); SetValue (Donetask); this.dispose (); Это «изображение не может быть пустым !!», «Ошибка», Jopti Onpane. Новый Bmpfilter ()); .getSelectedFile (); Jpg "; if (! Ext.endswith (". Jpg ")) {string ns = ext+". Jpg "; file = new file (ns);}} else if (ff ancessionof pngfilter) {about =" png "; if (! ext.endswith (". Png") {string ns = ext+".png"; ext.endswith (". Bmp")) {string ns = ext+". Bmp"; (".gif")) {string ns = ext+". Gif"; ! ");} else joptionpane.showmessageDialog (this," save fail! ");}} catch (exception exe) {exe.printstacktrace ();}} /** *Общественная обработка добавляет текущее изображение в метод буфера обмена * / / public void Docopy (Final BufferedImage Image) {try {if (get == null) {joptionpane.showmessagedialog (это, «изображение не может быть пустым !!», «Ошибка», joptionpane. new Transferable () {public dataflavor [] getTransferdataflavors () {return new Dataflavor [] {dataflavor.imageflavor}; Вкус) бросает UnsupportedFlavorexception, ioException {if (isdataflavorsupported (аромат)) , «Копировать системную плату !!»); Erron_message); GetSource (); Uimanager .getcrossplatformlookandfeelclassname ()); ); и можно поместить в панель табпана // Существует также собственный набор методов обработки сохранения и копирования частного класса Picpanel Extens JPanel реализует ActionListener {Jbutton Save, Copy, Close; // BufferedImag, что указывает на сохранение, копирование, закрытие, закрытие, Button -BuffereMag E Get; // Получите изображение Public Picpanel (BufferedImage get) {super (new Borderlayout ()); {Save = new Jbutton ("Save (s)"); '); Jlab el Icon = new Jlabel (New ImageIcon (get)); (это); ) {docopy (get); () {} public boolean Accept (file file) {if (file.toString (). ToLowerCase (). Endswith (". Bmp") || String getDe script () {return " *.bmp (bmp image)"; file) {if (file.tostring () .toloardercase (). Endswith (". jpg") || J PG (JPG Image) ";}} // Сохранить фильтры в формате gif Private Class giffilter Extens javax.swing.filechooser.filefilter {public giffilter () {} public booleance (файл файл) {if (fi le.tostring () ). // Сохранить фильтр формата PNG Private Class Pngfilter Extends javax.swing.filechooser.filefilter {public booleancom Accept (file file) {if (file.toString (). Tolowercase (). Endswith (". Png") || ()) {return true; MUSELISTEREN, MousemotionListener {Private BufferedImage BI; /Укажите выбранную зону частного курсора CS = новый курсор (cursor.crosshair_cursor); // Укажите состояние мыши в общих частных государствах Current = States.default; // Укажите текущее государство редактирования частного прямоугольника [] rec; // Укажите область восьми точек редактирования/ ::::::::::::::::::::::::::::::: ::::::::::::::::: ::::::::::::::::::::::::::::::::::: Public Static Pinal int start_x = 1; Только эти два необходимо изменить частную точку p = new Point (); // текущее место Больше не отображается (Jframe JF, BufferedImage BI, int width, int height) {this.jf = jf; this.addmousemotionlistener (this); ); ; 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? Starty: Endy) -5,10, 10); (Color.cyan); G.DrawString («Пожалуйста, удерживайте левую кнопку мыши и не поместите область экрана», PX, P.Y+15); West и т. Д. Break; 0; = (Starty> Endy? End_y: start_y); Start_x; Mouseemoed (Mouseevent Me) {Domousemoved (Me); область, которую вы хотите выбрать каждый раз, Private Domousemoved (MouseEvent ME) {if (select.contains (me.getPoint ())) {this.setCursor (новый курсор (cursor.move_cursor); else {states [] st = sather.values (); [i]; MouseEvent Me) {} public void mousedrag ged (mouseevent me) {int x = me.getx (); starty+= (y-tempy); {if (currentx == start_x) {startx+= (x-tempx); | Current == Saths.out) {if (current == start_y) {starty+= (y-tempy); current == stass.north_east || current == stass.north_east || y; Tempx = x; = false; True; MouseEvent me) {if (me.getClickCount () == 2) {// rectangle rec = new Rectange (Star tx, Starty, Math.abs (endx -Startx), Math.abs (Endy -Starty)); = me.getPoint (); .getSubimage (select.x, select.y, select.width, select.height); x+ select.width> = this.getWidth ()) {wid = this.getWidth ()-select.x; ) -select.y; []) {SwingUtilities.invokelater (new Runnable () {public void run () {new CaptureScreen ();}}); // Указывает северо -западный угол севера (новый курсор (cursor.n_resize_cursor)), North_east (новый курсор (cursor.ne _resize_cursor)), East (новый курсор (cursor .e_resize_cursor)), South_east (New Cursor (cursor.se_resize_cursor))), South_east (New Cursor (cursor.se_resize_cursor)))) ), Юг (новый курсор (cursor.s_resize_cursor)), South_west (новый курсор (cursor.sw_ resize_cursor)), West (new Cursor (cursor.w_resize_cursor)), Move (New Cursor (cursor.move_cursor), Defaul Cursor (cursor.default_cursor);Я надеюсь, что эта статья будет полезна для всех Java Programming.