1). 前提(condition)+ jedit4.2final+ jdk 1.42). 步骤(steps)1. add this at org.gjt.sp.jedit.textarea.textareapainterin method paintcomponent(…)after: extensionmgr.paintscreenlinerange(textarea, gfx, firstinvalid, lastinvalid, y, height);add: { // paint wallpaper after all that should be paint rectangle rect = this.getvisiblerect(); wallpaper.paintwallpaper(gfx, rect.x, rect.y, rect.width, rect.width, this); } 2. add in org.gjt.sp.jedit.textarea.jedittextarea // {{{ changewallpaperdialog() method // for change the wallpaper /** * displays the changewallpaperdialog dialog box. * @author neoedmund */ public void changewallpaperdialog() { if (wallpaper.changewallpaper(this)){ repaint(); } } //}}}3. add new class org.gjt.sp.jedit.textarea.wallpaper/* * created on 2005-3-26 */package org.gjt.sp.jedit.textarea;import java.awt.alphacomposite;import java.awt.composite;import java.awt.graphics2d;import java.awt.image.bufferedimage;import java.io.file;import java.io.fileinputstream;import java.io.ioexception;import java.io.inputstream;import javax.imageio.imageio;import javax.swing.jcomponent;import javax.swing.jfilechooser;/** * @author neoe */public class wallpaper { static bufferedimage pic; private static final string defalut_img = "org/gjt/sp/jedit/icons/wallpaper.jpg"; static{ system.out.println("hello wallpaper"); loadpic(classloader .getsystemresourceasstream(defalut_img)); } static alphacomposite alpha = alphacomposite.getinstance( alphacomposite.src_over, 0.2f); /** * @param gfx * @param width * @param height */ public static void paintwallpaper(graphics2d g, int cx, int cy, int width, int height, jcomponent view) { if (pic==null){ return; } int y = 0; int w = pic.getwidth(); int h = pic.getheight(); composite old = g.getcomposite(); g.setcomposite(alpha); while (true) { int x = 0; while (true) { g.drawimage(pic, cx+x, cy+y, view); x += w; if (w <= 0 || x >= width) { break; } } y += h; if (h <= 0 || y >= height) { break; } } g.setcomposite(old); } /** * @param in */ private static void loadpic(inputstream in) { try { pic = imageio.read(in); } catch (ioexception e) { e.printstacktrace(); } } static file f; /** * */ public static boolean changewallpaper(jcomponent parent) { jfilechooser jfc = new jfilechooser(f); int returnval = jfc.showopendialog(parent); if (returnval == jfilechooser.approve_option) { f = jfc.getselectedfile(); try { loadpic(new fileinputstream(f)); return true; } catch (ioexception e1) { e1.printstacktrace(); } } return false; }}4. copy default wallpaper whatever you like into org/gjt/sp/jedit/icons/wallpaper.jpg5. add this into org\gjt p\jedit\actions.xml<action name="change-wallpaper"> <code> textarea.changewallpaperdialog(); </code></action>6. change org\gjt p\jedit\jedit_gui.props, add "change-wallpaper" in tool bar#{{{ tool barview.toolbar=new-file open-file close-buffer save – print page-setup – \ undo redo cut copy paste – find find-next – new-view unsplit \ split-horizontal split-vertical – buffer-options global-options – \ plugin-manager – help – change-wallpaper………change-wallpaper.icon=help.png……..change-wallpaper.label=change $wallpaper7. last step, rebuild source, restart jedit, have fun. notes: i don`t know if it is something slowdown, but i like it 🙂
为JEdit设置墙纸(add wallpaper for jedit)-JSP教程,Java技巧及代码
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 为JEdit设置墙纸(add wallpaper for jedit)-JSP教程,Java技巧及代码
相关推荐
- 暂无文章
