java使用graphics2d,设置透明图层,然后graphics2d.drawline,画出线条,现在想让线条也是透明的,例如红色透明线条,不要遮掩线条下的字,应该怎么弄呢?

解决方案 »

  1.   

    package com.csdn;import java.awt.AlphaComposite;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;import javax.swing.JFrame;public class HalfTransparent extends JFrame { @Override
    public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;
    // 1f 就是不透明
    g2d.setComposite(AlphaComposite
    .getInstance(AlphaComposite.SRC_OVER, 1f));
    g.drawString("Hello World", 55, 55);
    // 0.5f 是半透明
    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
    0.5f));
    g2d.drawLine(50, 50, 100, 50);
    g2d.setColor(Color.red);
    // 为了看清楚这里话了3条线
    g2d.drawLine(52, 52, 100, 52);
    g2d.drawLine(53, 53, 100, 53);
    g2d.drawLine(54, 54, 100, 54);
    } public static void main(String[] args) {
    HalfTransparent frame = new HalfTransparent();
    frame.setSize(200, 200);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }}