得到Exception详细信息
//跟踪Exception信息,将其返回 public static String getStackTraceString(Exception e){ StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); return sw.toString(); }
由于printStackTrace()方法没有返回值,所以要自定义方法返回内容。此方法可以用户返回exception的详细错误。
有些时候,我们在Swing中用到类似于HTML的遮罩效果,但是目前在Swing中还没有特别好的面板组件半透明效果(com.sun.awt.AWTUtilities.setWindowOpacity()是针对window的)。
在此提供一个类似于遮罩的方法。将你所要获取的遮罩背景作为一张图片,并加入混合色效果
public static Image getMaskScreenShot(Component component,final Color maskColor, final int percent){ BufferedImage image = new BufferedImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_INT_RGB); component.paint(image.getGraphics()); //把图片和遮罩颜色进行混合 ImageProducer prod = new FilteredImageSource(image.getSource(), new RGBImageFilter() { @Override public int filterRGB(int x, int y, int rgb) { Color c = new Color(rgb); int r = calculate(maskColor.getRed(), c.getRed()); int g = calculate(maskColor.getGreen(), c.getGreen()); int b = calculate(maskColor.getBlue(), c.getBlue()); return (0xFF)<<24 | (r & 0xFF)<<16 | (g & 0xFF)<<8 | (b & 0xFF)<<0; } private int calculate(int maskValue, int value){ return (maskValue*percent + value*(100-percent))/100; } }); return Toolkit.getDefaultToolkit().createImage(prod); }