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