例子很复杂,你必须自己去研究了。
思路就是XOR。

解决方案 »

  1.   

    大致思路是:
    Color source = new Color(255, 0, 0); // Red
    Color medium = new Color(127, 127, 127); // GlayColor target = source xor medium; // 伪代码xor。最后,target = 128, 127, 127 // 接近灰色。只要取不同的medium,就能得到不同的target。
    半透明效果其实就类似于这样的加工,不过你需要找到medium。
      

  2.   

    setOpaque(boolean isOpaque) 这个函数
    是在 JComponent 类中定义的
    而 Swing 的大部分组件几乎都是由 JComponent 继承而来
    所以 基本上所有的 Swing 组件都可以用 setOpaque(false) 来透明
      

  3.   

    其实很简单:// 用半透明红色填充矩形的示例
    Graphics2D g2d …… 
    // Color的构造函数的最后一个参数是alpha通道值,从0到255
    Color myColor = new Color(255,0,0,128);
    g2d.fill(new Rectangle2D.Double(100,100,200,200),myColor);
      

  4.   

    to petit(tom-cat雄猫):我的例子中是灰色,你通过设置不同的medium,就可以获得不同的效果。透明效果也可以这样产生的。