Я хотел бы иметь возможность рисовать Image
сек на JFrame
, но всякий раз, когда я хочу (не в методе JFrame.paint
.Как рисовать графики за пределами функции краски() в JFrame
Для проекта I Я работаю, у меня есть class Bullseye extends BufferedImage
, и я пытаюсь поставить его на JFrame
:.
class DrawingFrame extends JFrame {
public void drawImage(Image img, int x, int y) {
getGraphics().drawImage(img,x,y,null);
repaint();
}
}
class Main {
public static void main(String[] args) {
DrawingFrame frame = new DrawingFrame();
Bullseye bullseye = new Bullseye(20,20); //width,height
// later
frame.setVisible(true);
frame.drawImage(bullseye,10,20);
frame.drawImage(bullseye,20,20);
frame.drawImage(bullseye,30,20);
}
}
Однако ничто не обнаруживается После некоторых исследований, по-видимому, это не работает, потому что изменения в graphics
объекта получить очищается, когда я repaint()
.
Как это сделать? Это даже правильный подход?
Могу ли я спросить вас, почему не в краске? – mhshams
Потому что я хочу произвольно добавить 'Images' извне. Когда я переопределяю 'paint', я плотно соединяю' JFrame' с 'Images', которые хочу добавить. –