private void paintSelectedMark(Graphics2D g2) {
        Stroke originalStroke = g2.getStroke();
        Color originalColor = g2.getColor();
        float[] dash = { 4f, 0f, 2f };
        g2.setStroke(new BasicStroke(STROKE_WIDTH, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1.0f, dash, 2f));
        g2.setColor(Color.green);
        for (Arrow arrow : selectArrows) {
            for (int i = 0; i < arrow.getArrowArea().npoints; i++) {
                if (i == arrow.getArrowArea().npoints - 1) {
                    g2.drawLine(arrow.getArrowArea().xpoints[i], arrow.getArrowArea().ypoints[i], arrow.getArrowArea().xpoints[0], arrow.getArrowArea().ypoints[0]);
                } else {
                    g2.drawLine(arrow.getArrowArea().xpoints[i], arrow.getArrowArea().ypoints[i], arrow.getArrowArea().xpoints[i + 1], arrow.getArrowArea().ypoints[i + 1]);
                }
            }
        }
        g2.setStroke(originalStroke);
        g2.setColor(originalColor);
    }