2016-09-29 2 views
0

Я новичок в Java, и я пытаюсь выяснить, как убедиться, что мой образ остается на экране после изменения размера окна. Я пробовал искать ответ перед публикацией, но я не могу найти то, что ищу.Как сохранить изображение после изменения размера?

Каков наилучший способ сделать это и как я должен это делать?

Вот что я считаю «важным» код:

public void mouseDragged(MouseEvent DrawingEvent) { 
    Graphics g = getGraphics(); 
    g.drawLine(DrawPoint.x, DrawPoint.y, DrawingEvent.getX(), DrawingEvent.getY()); 
    DrawPoint = new Point(DrawingEvent.getX(), DrawingEvent.getY()); 
} 

public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
} 
} 

ответ

2

Чтобы получить изображение, чтобы остаться:

  • Не использовать объект Graphics, полученный путем вызова getGraphics() на компоненте свинга , Эти объекты недолговечны и могут вызывать исчезновение изображений или NullPointerExceptions.
  • Вместо этого нарисуйте объект Graphics, заданный JVM, вашему методу paintComponent JPanel, точно так же, как и сообщение Swing drawing tutorials.
  • Вы можете использовать BufferedImage, а затем отображать это изображение в методе paintComponent в JPanel - скорее всего, это самый простой способ добиться того, что вы пытаетесь сделать.
  • Или вы можете создать ArrayList логических объектов, отличных от GUI, таких как Points или Line2D, а затем использовать эти коллекции для прямого рисования в методе paintComponent JPanel.

For example

+0

* "Вы можете рисовать на BufferedImage, а затем отобразить этот образ .." * в 'JLabel' - просто вызовите' jLabel.repaint() ', когда изображение обновляется. Я предпочитаю этот подход, когда нет (еще одной) веской причины для индивидуальной живописи. Во-первых, он избегает потенциальных ошибок неправильного метода обработки краски. –

Смежные вопросы