Как изменить цвет апплета - PullRequest
0 голосов
/ 03 августа 2011

Мне нужна помощь с этой программой, которую я должен создать для Uni.Проблема в том, что методы setColor и getColor не работают, и линия не меняет цвет, когда я этого тоже хочу.

Что мне нужно сделать, чтобы изменить цвет линии на красный?

Cheers

import java.awt.Color;
import java.awt.Point;
import javax.swing.JPanel;
import java.awt.*;

public class Shape extends JPanel {
static Point startPoint = new Point(0, 0);
Point controlPoint = new Point(0, 0);

Color colour = Color.BLACK;

public Shape() {
    this(startPoint);

}

public Shape(Point startPoint) {
    // initialise variable startPoint
    this.startPoint = startPoint;
    // execute methods setColour and setControlPoint
    setColor(colour);
    setControlPoint(controlPoint);
    // change startPoint
    startPoint.x = 50;
    startPoint.y = 50;

}

public void setColor(Color colour) {
    this.colour = colour;
    colour = Color.RED;
}

public Color getColor() {
    return colour;
}

public void setControlPoint(Point controlPoint) {
    controlPoint.x = 150;
    controlPoint.y = 150;
}

public void paintComponent(Graphics g) {
    super.paintComponents(g);
    g.setColor(colour);
    g.drawLine(startPoint.x, startPoint.y, controlPoint.x, controlPoint.y);
}

}

Ответы [ 2 ]

3 голосов
/ 03 августа 2011

Вам нужно вызвать repaint () после установки цвета

public void setColor(Color colour) {
    this.colour = colour;
    colour = Color.RED;

    // Repaint so the component uses the new color
    repaint();
}
1 голос
/ 03 августа 2011

Или вы можете избавиться от метода setColor ().

Затем вы можете использовать:

setForeground( colour );

для управления цветом линии, которую нужно нарисовать.

Цвет объекта Graphics будет установлен на цвет переднего плана, поэтому вы также можете избавиться от:

g.setColor( colour );
...