2013-11-11 5 views
-1

Что на самом деле мне нужно сделать ... Нарисуйте изображение (которое обычно имеет большой размер). Мне нужно прокрутить изображение, чтобы нарисовать его. Для этого я добавил изображение (JLabel) в Jpanel и добавил Jpanel в JScrollPane. Теперь я могу прокрутить изображение, но не смог нарисовать его. Может кто-то, пожалуйста, помогите мне в этом? Вот мой код ... `Невозможно нарисовать изображение

JFrame frame = new JFrame("Title"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setPreferredSize(new Dimension(800, 800)); 

    JPanel panel = new JPanel(); 

    panel.add(new JLabel(new ImageIcon(image))); 

    JScrollPane jspane=new JScrollPane(panel); 
    jspane.setViewportView(panel); 
    jspane.add(this); //where i need to draw according to the mouse click 
         //when i tried frame.add(this); i was able to draw only on some 
         //portion of the image but not able to scroll it. 
    frame.add(jspane, BorderLayout.CENTER); 

    frame.pack(); 

    frame.setVisible(true); 

ответ

1

jspane.add (это);

Не пытайтесь добавить компоненты в прокрутку. Компоненты могут быть добавлены только в окно просмотра (и вы сделали это, когда создали JScrollPane.

Если вы хотите нарисовать на этикетке, вам необходимо расширить JLabel и переопределить метод paintComponent(), чтобы сделать свою собственную картину в верхней части изображения.

Для примера см. раздел из руководства Swing на примере Custom Painting.

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