手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

为JEdit设置墙纸(add wallpaper for jedit)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
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 :)

上一篇: 知识库API(JSR-170)提交最终草案
下一篇: 利用XMLBuddy在Eclipse中开发XML

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!