Новое в java: я переделал краску() и положил в нее кое-что; то я переопределяю paintComponent(), и я заметил, что код в paint() не запускается. Я забыл что-то сделать, или я просто не знаю? (Я знаю, что это хорошая практика, чтобы использовать @Override, но это один из тех дней)Java: переопределение краски() И paintComponent()
private Image dbImage;
private Graphics dbg;
public void paint(Graphics g)
dbImage = createImage(getWidth(), getHeight());
dbg = dbImage.getGraphics();
paintComponent(dbg);
g.drawImage(dbImage, 0, 0, this);
g.fillOval(0, 0, 10, 12);
}
public void paintComponent(Graphics g) {
setBackground(Color.CYAN);
double i = .25;
if (du) {
y -= i;
}
if (dr) {
x += i;
}
if (dd) {
y += i;
}
if (dl) {
x -= i;
}
if (x < 0) {
x = 0;
}
if (x > getWidth() - 25) {
x = getWidth() - 25;
}
if (y < 25) {
y = 25;
}
if (y > getHeight() - 25) {
y = getHeight() - 25;
}
g.drawOval((int) x, (int) y, 25, 25);
repaint();
}
public static void main(String[] args) {
}
И несвязанной теме: что перекрасить() делать?
'Я знаю, что это хорошая практика для использования @override,' - тогда используйте его. Нет никаких оправданий для ярлыков. – camickr
Методы краски и краскиКомпонент вызывается системой довольно часто, часто несколько раз в секунду. Загрузка/создание изображения внутри метода рисования заметно ухудшит производительность. – VGR