JAVA什么组件能实现像桌面上快a捷图标一样?点哪个哪个变色,请各位高人帮忙!!!!!!!!!! JAVA什么组件能实现像桌面上快a捷图标一样?点哪个哪个变色,请各位高人帮忙!!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好像没有。不过你可以自己做picture 参见:创建用于翻转效果的 Java2D 合成http://www-128.ibm.com/developerworks/cn/java/us-j2d/ import java.awt.Composite;import java.awt.CompositeContext;import java.awt.RenderingHints;import java.awt.image.ColorModel;import java.awt.image.*;public class RolloverComposite implements Composite{ public static RolloverComposite DEFAULT = new RolloverComposite(); private RolloverComposite() { } public CompositeContext createContext(ColorModel srcColorModel, ColorModel dstColorModel, RenderingHints hints) { return new CompositeContext() { public void compose(Raster src, Raster dstIn, WritableRaster dstOut) { for (int x = 0; x < dstOut.getWidth(); x++) { for (int y = 0; y < dstOut.getHeight(); y++) { int[] srcPixels = new int[4]; src.getPixel(x, y, srcPixels); if (srcPixels[3] != 0) { srcPixels[0] = srcPixels[0] +(255-srcPixels[0])/2; srcPixels[1] = srcPixels[1] +(255-srcPixels[1])/2; srcPixels[2] = srcPixels[2] +(255-srcPixels[2])/2; dstOut.setPixel(x, y, srcPixels); } } } } public void dispose() { } }; }}import java.awt.Component;import java.awt.Composite;import java.awt.Graphics;import java.awt.Graphics2D;import javax.swing.Icon;public class RolloverIcon implements Icon{ protected Icon fIcon; public RolloverIcon(Icon anIcon) { fIcon = anIcon; } public int getIconHeight() { return fIcon.getIconHeight(); } public int getIconWidth() { return fIcon.getIconWidth(); } public void paintIcon(Component c, Graphics g, int x, int y) { Graphics2D g2D = (Graphics2D) g; Composite oldComposite = g2D.getComposite(); g2D.setComposite(RolloverComposite.DEFAULT); fIcon.paintIcon(c, g, x, y); g2D.setComposite(oldComposite); }}//使用的时候这样就好了button.setIcon(icon);button.setRolloverIcon(new RolloverIcon(icon)); 用事件:做3个bmp图作为按钮背景,各是你想要的nomal状态,drag in 状态,on click状态的效果nomal状态作为默认。再分别在drag in事件、drag out事件和onclick事件相应代码里把按钮背景换上相应的图片。我以前用过一个模拟桌面系统自定义按钮就是用的相同思路。^_^ 为什么要用bpm图片作为按钮背景?还有什么办法嘛? java 多线程 关于Applet中JPanel的绘图问题 如何实现Jsp连接打印机打印功能? 求助! 迷惘迷惘... 如何判断一个字符串中是否含有另一个字符串? IO问题 请教一个Java播放声音的问题 一个朋友的遭遇和我的意见 网络上那些java免费公开课是否有用 帮我看看这个java程序哪里错了? 苦求,一個關於SQL的問題!
创建用于翻转效果的 Java2D 合成
http://www-128.ibm.com/developerworks/cn/java/us-j2d/
import java.awt.CompositeContext;
import java.awt.RenderingHints;
import java.awt.image.ColorModel;import java.awt.image.*;public class RolloverComposite implements Composite
{
public static RolloverComposite DEFAULT = new RolloverComposite(); private RolloverComposite()
{
} public CompositeContext createContext(ColorModel srcColorModel, ColorModel dstColorModel, RenderingHints hints)
{
return new CompositeContext()
{
public void compose(Raster src, Raster dstIn, WritableRaster dstOut)
{
for (int x = 0; x < dstOut.getWidth(); x++)
{
for (int y = 0; y < dstOut.getHeight(); y++)
{
int[] srcPixels = new int[4];
src.getPixel(x, y, srcPixels);
if (srcPixels[3] != 0)
{
srcPixels[0] = srcPixels[0] +(255-srcPixels[0])/2;
srcPixels[1] = srcPixels[1] +(255-srcPixels[1])/2;
srcPixels[2] = srcPixels[2] +(255-srcPixels[2])/2;
dstOut.setPixel(x, y, srcPixels);
}
}
}
} public void dispose()
{
}
};
}
}
import java.awt.Component;
import java.awt.Composite;
import java.awt.Graphics;
import java.awt.Graphics2D;import javax.swing.Icon;public class RolloverIcon implements Icon
{
protected Icon fIcon; public RolloverIcon(Icon anIcon)
{
fIcon = anIcon;
} public int getIconHeight()
{
return fIcon.getIconHeight();
} public int getIconWidth()
{
return fIcon.getIconWidth();
} public void paintIcon(Component c, Graphics g, int x, int y)
{
Graphics2D g2D = (Graphics2D) g;
Composite oldComposite = g2D.getComposite();
g2D.setComposite(RolloverComposite.DEFAULT);
fIcon.paintIcon(c, g, x, y);
g2D.setComposite(oldComposite);
}
}
//使用的时候这样就好了
button.setIcon(icon);
button.setRolloverIcon(new RolloverIcon(icon));
做3个bmp图作为按钮背景,各是你想要的nomal状态,drag in 状态,on click状态的效果
nomal状态作为默认。
再分别在drag in事件、drag out事件和onclick事件相应代码里把按钮背景换上相应的图片。我以前用过一个模拟桌面系统自定义按钮就是用的相同思路。^_^