Толщина линии 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));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д