Толщина линии Applet - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день! Не могу рисовать линиями разной толщины. При нажатии на "W" , с этого момента , толщина линии должна увеличиваться на отрезке. А у меня изменяется размер всей линии.
import java.awt.*;
 
import java.applet.*;
 
public class paint extends Applet {
 
    boolean isBlack = true;
    Point startPoint;
    Point points[];
    int numPoints;
    boolean drawing;
    int n = 0;
 
    @Override
    public void init() {
        startPoint = new Point(0, 0);
        points = new Point[10000];
        drawing = false;
        resize(300, 400);
    }
 
    @Override
    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
 
        if (n == 0) {
            g2.setStroke(new BasicStroke(n));

        }
        if (n == 1) {
           g2.setStroke(new BasicStroke(5));
 
        }
        if (n == 2) {
            g2.setStroke(new BasicStroke(7));
        }
        if (n == 3) {
            g2.setStroke(new BasicStroke(9));
        }
 
        int oldX = startPoint.x;
        int oldY = startPoint.y;
        for (int i = 0; i < numPoints; ++i) {
 
            g.drawLine(oldX,oldY,points[i].x,points[i].y);
            g2.drawLine(oldX, oldY, points[i].x, points[i].y);
            oldX = points[i].x;
            oldY = points[i].y;
        }
    }
 
    @Override
    public boolean keyDown(Event evt, int key) {
        char keyChar = (char) key;
 
        if (keyChar == 'w') {
            n++;
            if (n >=3) {
                n = 0;
            }

        }
        if (keyChar == 'q') {
            n--;
            if (n <= 0) {
                n = 3;
            }
        }
 
        return true;
    }
 
    @Override
    public boolean mouseDown(Event evt, int x, int y) {
 
        if (!drawing) {
            startPoint.x = x;
            startPoint.y = y;
        }
        drawing = !drawing;
        return true;
    }
 
    @Override
    public boolean mouseMove(Event evt, int x, int y) {
        if ((drawing) && (numPoints < 10000)) {
            points[numPoints] = new Point(x, y);
            ++numPoints;
            repaint();
        }
        return true;
    }
}

Решение задачи: «Толщина линии Applet»

textual
Листинг программы
g2.setStroke(new BasicStroke(3 + 2 * n));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5