Как я рисую круг, где я нажимаю [дублировать]

Вы можете использовать такой код:

char *MyFunction(some arguments...)
{
    char *pointer = malloc(size for the new array);
    if (!pointer)
        An error occurred, abort or do something about the error.
    return pointer; // Return address of memory to the caller.
}

Когда вы это сделаете, память должна быть освобождена позже, передав адрес бесплатно.

Есть другие варианты , Подпрограмма может возвращать указатель на массив (или часть массива), который является частью некоторой существующей структуры. Вызывающий может передать массив, и программа просто записывает в массив, а не выделяет пространство для нового массива.

6
задан StanislavL 9 November 2011 в 12:55
поделиться

2 ответа

Измените свой mouseClick(...) на:

int x, y;

public void mouseClicked(MouseEvent e) {
    x = e.getX();
    y = e.getY();

    repaint();
}

Переопределить paint(...):

@Override
public void paint(Graphics g) {
    drawCircle(x, y);
}
10
ответ дан wannik 19 August 2018 в 17:48
поделиться

Когда вы вызываете repaint(), компонент снова окрашивается с нуля . Ты кружк уничтожен. Вы захотите переопределить paintComponent(Graphics), который вызывается каждый раз, когда компонент окрашивается.

5
ответ дан Adam Paynter 19 August 2018 в 17:48
поделиться
  • 1
    Вы также можете сохранить все рисованные круги в массиве или списке и перерисовывать их каждый раз – Matthias Bruns 9 November 2011 в 11:53
  • 2
    @Traxdata: Да, я думал об упоминании этого, но этот вопрос казался домашним вопросом, поэтому я оставил его ему. :) – Adam Paynter 9 November 2011 в 11:56
  • 3
    в ловушке снова ...: D В любом случае переопределение paintComponent (Graphics) будет слишком сложным, если это домашняя работа – Matthias Bruns 9 November 2011 в 12:12
  • 4
    Обратите внимание, что OP рисуется в контейнере верхнего уровня. JFrame и другие TLC не имеют метода paintComponent(Graphics). OTOH лучше not переопределить paint(Graphics) в TLC, но вместо этого использовать JComponent или JPanel - который имеет метод paintComponent(Graphics). – Andrew Thompson 9 November 2011 в 12:33
Другие вопросы по тегам:

Похожие вопросы: