区域加法和减法后为什么会出现白线?

时间:2016-11-17 04:53:17

标签: java swing graphics graphics2d

这是我的界面

package Tools;

import java.awt.Color;
import java.io.Serializable;

/**
 *
 * @author DELL-PC
 */
public interface ToolsModel extends Serializable {

    public void setColor(Color color);

    public Color getColor();

    public void setVisible(boolean b);

    public boolean isVisible();

    public void setID(String id);

    public String getID();

    public ToolsModel getShape();

}

我已经使用这个界面创建了一些不规则的形状,并且从这个界面我想在界面上添加Add.Subtract并且它工作正常但是有些白色凸起。
这是我的代码,用于在界面上添加,减去。

public void trimShade(ToolsModel toolsModel) {
        System.out.println("I am at TrimShade");
        Area area = new Area();
        for (ToolsModel model : getShadeList()) {
            if (model.equals(toolsModel) || model.getID().equals(toolsModel.getID())) {
                continue;
            }
            area.add(new Area((Shape)model));
            if (!area.isEmpty()) {
                ((Area) model).subtract(new Area((Shape)toolsModel));

            }
        }
    }

首先我们在这里绘制多边形不规则形状,然后在第一个形状内绘制下一个形状。
这是输出结果:
enter image description here
如何删除两个区域加减后产生的白线。它是第二个区域的边界。

1 个答案:

答案 0 :(得分:0)

我得到了解决方案,当我评论抗锯齿和质量渲染提示时,我解决了问题。

//g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);